簡體   English   中英

如何在 Solr 中編寫條件查詢?

[英]How to write conditional query in Solr?

我是sonr的新手,我必須編寫一個條件查詢。 我只是想知道我可以編寫具有多個條件的查詢。

我有四列,查詢條件如下:-

列:姓名、地址、城市、州

現在,如果有人通過關鍵字“羅馬尼亞”進行搜索,則結果應基於以下條件:-

  1. 如果關鍵字與名稱列匹配,則在名稱列中搜索,然后返回數據並且不再查找任何其他列。
  2. 如果名稱列沒有該關鍵字,則它將轉到地址列,如果找到結果則與第一步類似,然后返回數據,否則將轉到下一列。

這是一種優先搜索,其中預先定義了搜索中使用的列的優先級。 如果sonr 提供任何此類功能,我想使用它而不是編寫任何模糊邏輯。

謝謝

這將搜索您正在談論的所有列。 使用qf告訴 Solr 您要查詢哪些字段(使用 edismax 查詢類型時):

qf=name address city

您還可以賦予權重,以便名稱列中的命中顯示高於地址列中的命中,而地址列中顯示的命中將高於城市列中的命中:

qf=name^20 address^10 city

您可能需要調整權重才能獲得所需的搜索結果。

您可以使用 fq 像這樣搜索它:

fq=name:romania 

或在 q

+name:"romania" or +address:"romania" or +city:"romania" or +state:"romania"

使用 OR 就像在編程中一樣,如果第一個查詢為假,則移動到下一個,然后移動到下一個。

暫無
暫無

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

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