2013-05-10 54 views
0

我在搜索僅與搜索關鍵字開頭的那個句子相匹配的數據。Solr lucene僅搜索句子中的第一個單詞 - need query

例:

search key "what" 

結果:所需的一種

**what** is your name 
**what** are you doing 
**what** is that 

etc. 

如何我現在得到的是

Is that **what** you want 
some text before **what** 

etc. 

我使用EdgeNGram作爲well..But它給我第二個。 任何幫助讚賞....

回答

1

我想你使用的是WhitespaceTokenizer。你應該嘗試在左端使用EdgeNGram的KeywordTokenizer。

如果您嘗試實施自動建議,請查看Suggester組件。

+0

您好,我試圖與相關建議者的鏈接。我只收到用戶輸入的那個單詞。對於EX:如果我的搜索字段的值爲「你的名字是什麼」,如果搜索是W或WH,它只給我「什麼」,如果有人搜索喲,它只給我「你的」。所以在這裏我想要當W搜索我想要整個字符串和「喲」 – sandy 2013-05-10 08:54:34

+0

whitespace或關鍵詞標記沒有什麼區別! – sandy 2013-05-10 08:56:52

+0

Ya Suggester對令牌起作用,而不是字段值本身。我不確定爲什麼關鍵字標記器不起作用,它會保留整個值,並從前面ngram,這似乎正是你想要的。最糟糕的情況下,你可以給facet.prefix一個鏡頭http://wiki.apache.org/solr/SimpleFacetParameters#facet.prefix – rounak 2013-05-10 09:20:20

0

我認爲你可以使用下面的技巧:下面一行添加到您的字段定義:

<charFilter class="solr.PatternReplaceCharFilterFactory" 
    pattern="^(.*)$" replacement="AAAA $1" /> 

這將增加「AAAA」令牌來索引和查詢兩種。這樣您可以匹配索引字符串的開頭。

此處瞭解詳情:

相關問題