无法在正常查询中的特定字段上使用“OR”获得预期结果。 Solr可以对特定字段进行OR查询吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在正常查询中的特定字段上使用“OR”获得预期结果。 Solr可以对特定字段进行OR查询吗?相关的知识,希望对你有一定的参考价值。

你能对特定领域进行OR查询吗?例如,你能做(main_ref_number_tesim:(1920.1*)) OR (main_ref_number_tesim:(1920.2*))吗?

我已经为我们的版本(5.5)阅读了documentation,他们使用没有特定字段的示例,例如:

"jakarta apache" jakarta

要么

"jakarta apache" OR jakarta

注意:我能够使用过滤器查询获得预期的结果,但我的目标是使用普通查询获得相同的结果。有效的fq是main_ref_number_tesim:(1920.1* 1920.2*)


EDIT1:我尝试过的常规查询,应该可以工作,但是不起作用,是:

  1. (main_ref_number_tesim:(1920.1*)) OR (main_ref_number_tesim:(1920.2*))
  2. main_ref_number_tesim:(1920.1* OR 1920.2*)
  3. main_ref_number_tesim:(1920.1* 1920.2*)
答案

是的,您可以为特定字段进行OR。

@Query(value = "*:*", filters = "(keywords:(?0))")
public Page<ENITITY> findDataByKeywords(List<String> keywords,Pageable pageable);

与上面的代码一样,当您传递关键字列表时,操作将由solr应用于关键字。

希望这能解决问题。

以上是关于无法在正常查询中的特定字段上使用“OR”获得预期结果。 Solr可以对特定字段进行OR查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

预期的函数/变量错误消息

查询字段中的 Dsum 函数无法正常工作

django - 使用 lambda 进行 OR 查询

SQL Server 查询以计算每日“持仓”未结订单

无法确定 magento 过滤器查询中的字段名称

无法在类型“y”上查询字段“x”