Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Solr 5.5.0中添加AND和OR运算符_Java_Solr_Lucene_Solr5 - Fatal编程技术网

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

Java 如何在Solr 5.5.0中添加AND和OR运算符,java,solr,lucene,solr5,Java,Solr,Lucene,Solr5,我使用的是Solr 5.5.0,目前应用程序正在使用“and”操作符进行搜索,但没有指定它。例如:我搜索程序员开发人员,它会给我文件的结果,上面写着“程序员和开发人员”。配置在solrconfig.xml中完成 100% 但我现在需要对其进行更改,以使其同时使用两个运营商: 当我写程序员和开发人员并给出包含这两个词的文件的结果时 当我编写程序员或开发人员并给出包含一个或另一个单词的文件的结果时 你能告诉我该怎么做吗?我在互联网上浏览了这些信息,但没有找到答案。据我所知,SOLR中有一个字段,您

我使用的是Solr 5.5.0,目前应用程序正在使用“and”操作符进行搜索,但没有指定它。例如:我搜索程序员开发人员,它会给我文件的结果,上面写着“程序员和开发人员”。配置在solrconfig.xml中完成

100%
但我现在需要对其进行更改,以使其同时使用两个运营商:

  • 当我写程序员和开发人员并给出包含这两个词的文件的结果时
  • 当我编写程序员或开发人员并给出包含一个或另一个单词的文件的结果时
    你能告诉我该怎么做吗?我在互联网上浏览了这些信息,但没有找到答案。

    据我所知,SOLR中有一个字段,您需要在该字段上搜索该单词。我将SOLR字段命名为“job”,其值为“programmer”或“developer”。 您不需要在solrconfig中更改任何内容,您可以在查询中进行更改

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

    您可以按如下方式搜索结果:

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

    localhost:8983/solr/select?q=job:programmer AND job:developer
    
    localhost:8983/solr/select?q=job:programmer OR job:developer
    
    用于搜索程序员或开发人员

    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作为该查询字符串的前缀,以向查询解析器提供更多信息,例如,将lucene查询解析器的默认运算符类型更改为“AND”,将默认字段更改为“title”:

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