下面是模式的interresting部分:奇怪的查詢行爲需要一些幫助調試這個
<fieldType name="text_rev" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
<filter class="solr.ASCIIFoldingFilterFactory" />
</analyzer>
</fieldType>
我使用這個字段類型的字段名爲標題,有些產品,其標題包含「哈利·波特」
查詢:「標題:哈利*」將返回0結果,而「標題:哈利」將返回很多。 但標題:Potter *將返回與「標題:Potter」相同數量的結果
那麼爲什麼「標題:Harry *」不返回任何結果呢?
編輯:我發現了一個解決方法使用查詢:「標題:‘哈利·’」 (注意使用「)
下面是查詢標題調試:哈利,標題:哈利*,標題: 「哈利·」
標題:哈利
<str name="rawquerystring">Title:Harry</str>
<str name="querystring">Title:Harry</str>
<str name="parsedquery">Title:harri</str>
<str name="parsedquery_toString">Title:harri</str>
標題:哈利·
<str name="rawquerystring">Title:Harry*</str>
<str name="querystring">Title:Harry*</str>
<str name="parsedquery">Title:Harry*</str>
<str name="parsedquery_toString">Title:Harry*</str>
標題: 「哈利·」
<str name="rawquerystring">Title:"Harry*"</str>
<str name="querystring">Title:"Harry*"</str>
<str name="parsedquery">Title:harri</str>
<str name="parsedquery_toString">Title:harri</str>
我不知道你在說什麼類型的查詢。 XSLT? SQL?還有別的嗎? – Ladlestein 2010-09-15 18:50:12
Solr/Lucene查詢;)檢查問題標記 – 2010-09-15 19:00:51