我是sonr的新手,我必须编写一个条件查询。我只是想知道我可以编写具有多个条件的查询吗?
我有四列,查询条件如下:-
列:姓名、地址、城市、州
现在,如果有人通过关键字"罗马尼亚"进行搜索,那么结果应基于以下条件:-
- 如果关键字与名称列匹配,则在名称列中搜索,则返回数据,不要再进行任何列。
- 如果 name 列没有该关键字,那么它将转到地址列,如果找到结果,则返回数据,则类似于第一步,否则它将转到下一列。
它是一种优先级搜索,其中预定义了要在搜索中使用的列的先验。如果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 就像在编程中一样,如果第一个查询为 false,则移动到下一个查询和下一个查询。