簡體   English   中英

Solr 搜索:使用“AND”搜索在多個字段中搜索

[英]Solr Search: Searching in multiple fields with "AND" Search

我是一家電子商務公司搜索引擎的產品負責人,我目前正在“發現”Solr - 因為我以前從未使用過這個引擎。 如果我沒有使用正確的術語,請提前抱歉。

我有以下典型用例:用戶尋找“Apple iPhone”。 數據集包含諸如品牌 = Apple、產品名稱 = iPhone、產品類型 = 智能手機、類別 = 智能手機等字段。

在我們當前的設置中,根據我們的外部顧問的說法,引擎提供包含蘋果或 iPhone 8 的所有結果。為了首先獲得所有蘋果 iPhone 作為結果,他們建議我們創建一個新的索引屬性,其中包含品牌、產品名稱、產品類型和類別合二為一,並用這個新屬性替換單個屬性(例如品牌、產品名稱等)。 根據他們的說法,Solr 無法提供 AND 搜索(“在其數據集中查找所有具有蘋果和 iPhone 的產品”)。

這是正確的,你會以同樣的方式處理這個用例嗎?

我很懷疑 Solr 無法在單獨的屬性中查找 Apple iPhone,然后提供在任一索引屬性中都包含這兩個術語的結果。 他們推薦的更改也意味着我們失去了粒度,因為多個字段被連接為一個。 這也意味着我們將無法再單獨提升每個屬性,因為它們已被新屬性取代。

我知道我的請求可能會被視為“新手”問題,但作為非開發人員,我仍然無法弄清楚,顧問似乎真的認為這是處理此用例的唯一方法。

感謝大家的幫助!

沒有任何理由失去粒度; 通常,您需要將字段(使用copyField指令)復制到一個或多個字段中以支持不同類型的查詢(這也允許您使用不同的權重對不同字段中的命中進行評分)。 這樣您就可以保留所有原始字段,並且您有一個新的、單獨的字段,它將所有內容作為單個搜索字段。

根據您的查詢用例,您可能只需要edismax查詢處理程序和qf=Brand ProductName ProductType來查詢這些字段,並設置q.op=AND (或mm=<factor> )以獲得您想要的行為。 如果您無法使用qf跨字段匹配,請使用將不同字段復制到其中的字段作為基本匹配(即添加SearchField作為qf的最后一個字段,如上所示),然后提高品牌/名稱/等等。 因此,僅“apple”的精確匹配得分更高。

究竟什么被認為是匹配將取決於該字段發生的標記化和過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM