2012-01-05 119 views
0

我正試圖在我的應用程序中啓用部分單詞搜索。我想要發生的是,如果有人搜索說框架,並且索引欄有「playframework」作爲其中一項,那麼它應該被檢測爲一個命中。Playframework + Lucene:如何搜索部分單詞?

這裏是我的嘗試:

play.modules.search.Query Q = Search.search( 「指數:*」 + JavaExtensions.noAccents(通過).toLowerCase()+ 「*」 的位置。類);

但我得到一個錯誤: 無法分析「指數:* *框架: '?*' 或 ''不允許在WildcardQuery

任何想法,第一個字符?

+1

你不應該開始你的搜索與'*',如所述。您應該定義過濾器以匹配部分(可能使用NGramFilterFactory)。見:http://stackoverflow.com/questions/4824954/solr-partial-and-full-string-match了相關的問題,第二個答案(由毛裏西奧·雅伯)應該工作。不要忘記重新索引! – 2012-01-05 22:59:14

回答

0

看來你需要做一個fuzzy search。在你的情況下,下面的代碼應該做你需要的:

play.modules.search.Query q = 
    Search.search("yourFieldInLocationClass:" + queryString + "~", Location.class);