我們正在使用Solr作爲後端引擎來實現搜索功能。數據使用DIH從數據庫中提取。該文件的關鍵信息包括:使用Solr搜索動態列表的最佳方法?
- product number (number)
- product name (name)
- applicant name (applicant)
- product purpose (purpose)
所有字段都存儲和索引。
我們提供一個搜索框讓用戶輸入任意數量的關鍵字,系統將搜索所有字段並嘗試匹配所有關鍵字。爲此,我們使用「copyField」創建結合上述所有信息的附加字段。
但是,另一個要求是用戶將能夠限制他們在選定的目標領域的搜索。例如,用戶只能選擇名稱和用途字段。在這種情況下,關鍵字搜索將只從這兩個字段中搜索。
目前,我們使用下面的查詢方法來實現的功能:
例如,假設
- the user provide keywords: K1 and K2,
- and the user want to search on name, applicant and purpose only,
以下搜索字符串將動態生成併發送到Solr:
(name:K1 OR applicant:K1 OR purpose:K1) AND (name:K2 OR applicant:K2 OR purpose:K2)
有沒有其他方法來實現該功能?如果您能分享您的專業知識,我們將非常感激。
感謝, 範
嗨Jayendra,謝謝你的回答。 「(名稱:K1 OR申請人:K1)和(名稱:K2 OR申請人:K2)」是否「qt = edismax&q = K1 K2&qf =這兩種方法之間的區別是什麼(例如性能?) – user1397457
性能將與查詢觸發的結果相同。這很容易配置和處理 – Jayendra