如何在 Solr 5.5.0 中同时添加 AND 和 OR 运算符

How can I add both AND and OR operators in Solr 5.5.0

我正在使用 Solr 5.5.0,目前应用程序正在使用 "AND" 运算符进行搜索,但未指定。例如:我搜索 programmer developer,结果是包含 programmer 和 developers 的文件。配置在solrconfig.xml

中完成
<str name="mm">100%</str>

但我现在需要更改它以使其同时使用两个运算符:

  1. 当我写 programmer AND developer 并给我包含这两个词的文件的结果时;
  2. 当我写 程序员或开发人员 并给我包含一个或另一个词的文件的结果时;

你能告诉我应该做什么以及如何做吗?网上查了资料也没弄明白

据我了解这个问题,您在 SOLR 中有一个字段需要在其中搜索单词。我将 SOLR 字段命名为 "job",它的值是 "programmer" 或 "developer"。 您不需要更改 solrconfig 中的任何内容,您可以在查询中进行更改。

SOLR 使用的默认查询解析器是 Standard Query Parser。此解析器支持布尔运算符,如 AND、OR 等。

您可以这样搜索结果:

用于搜索程序员和开发人员

localhost:8983/solr/select?q=job:programmer AND job:developer

用于搜索程序员或开发人员

localhost:8983/solr/select?q=job:programmer OR job:developer

希望这对您有所帮助。

您可以通过在 requestHandler 上设置默认值来定义 solrconfig.xml 中的默认运算符:

<requestHandler name="search" class="solr.SearchHandler" default="true">
    <lst name="defaults">
      <str name="q.op">AND</str>
      ...

LocalParams。假设我们有现有的查询参数

q=solr rocks

我们可以在这个查询字符串前添加 LocalParams 以向查询解析器提供更多信息,例如将 lucene 查询解析器的默认运算符类型更改为 "AND" 并将默认字段更改为 "title" :

q={!q.op=AND df=title}solr rocks