2012-12-04 122 views
1

我有關於用戶商店的信息的文本字段,包括名和姓。例如:約翰貝爾。當我搜索「John」或「Bell」或「John Bell」時,它工作正常。
但是,當我通過「貝爾約翰」搜索 - 搜索結果爲0.有沒有可能解決這個問題?架構配置:solr按名和姓搜索

<field name="content" type="content_ws" indexed="true" stored="true" /> 

<fieldType name="content_ws" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="query"> 
    <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
     </analyzer> 
     <analyzer type="index"> 
    <charFilter class="solr.HTMLStripCharFilterFactory"/> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
     </analyzer> 
    </fieldType> 
+1

您的搜索字詞中是否包含雙引號? – Stanley

+0

問題可能是positionIncrementGap,請嘗試刪除該參數並檢查。 – Jayendra

+0

positionIncrementGap - 刪除,沒有任何更改。 「在搜索詞中包含雙引號」是什麼意思? – Roman

回答

0

通過使用DisMax查詢分析器和qs參數設置爲大於2的值將幫助你找到相反的順序查詢。

查詢應該是這樣的:

http://localhost:8993/solr/select?defType=dismax&q="Bell John"&qs=2 
0

隨着標準的查詢處理程序,您可以創建接近參數queryies。

例如q=content:"Bell John"~2其中2是污水或令牌的數量分開。

當你搜索約翰貝爾的話是在位置,因此零工作的鄰近坡度。創建與搜索相同的單詞的位置沒有改變。

然而,當該查詢是Bell John啤酒花創建的字的數目是2

例如

Bell John - Query data 
Bell - One hop would bring Bell and John at the same position 
John 
John Bell - Second hop would recreate the indexed term. 

因此,對於尊敬的查詢,在這種情況下,坡度應該是最小值2。