[英]Searching multiple fields with Lucene
我正在嘗試實施的搜索遇到一些麻煩。 我需要用戶能夠將搜索查詢輸入到Web界面中,並且后端Java需要在許多字段中搜索查詢。 這方面的一個例子可能是最好的:
假設我有一個包含“Person”對象的List。 假設每個對象包含兩個關於此人的字符串字段:
FirstName: Jack
Surname: Smith
FirstName Mary
Surname: Jackson
如果用戶輸入“jack”,我需要搜索以匹配兩個對象,第一個在Surname上,第二個在FirstName上。
我一直在尋找使用MultiFieldQueryParser,但無法正確設置字段。 任何有關這方面的幫助或指向一個好的教程將不勝感激。
正如你所說, MultiFieldQueryParser
就是你想要的。
確保:
Analyzer
jack
你將找不到jackson
。 (在這種情況下你可以搜索jack*
。) 關於字段名稱,我總是為我的字段名稱設置一個enum
,然后在將字段名稱傳遞給Lucene時使用例如MyFieldEnum.firstname.name()
,這樣如果我犯了拼寫錯誤,編譯器就可以捕獲它,它也是一個放置Javadoc的好地方,以便您可以查看字段的用途,還可以在Lucene文檔中查看要支持的完整字段列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.