Solr查询字段必须进行查询搜索

时间:2018-09-10 16:32:58

标签: php solr lucene

我正在使用Bitnami Apache Solr 7.4.0(最新)

我索引了文件

现在在管理面板中用于查询搜索,我需要编写 field:value 格式

但是我只想搜索

示例:

  

q = field:value(有效)

     

q = value(结果为0)

所以我应该在schema.xml文件中配置什么,该文件只能通过字段的值来搜索

3 个答案:

答案 0 :(得分:0)

您不需要修改架构。您可以通过在requestHandler文件中创建新的solrconfig.xml来创建自己的请求处理程序,该请求处理程序可以根据您的要求执行查询操作。有关如何执行此操作的更多详细信息,请参见here

话虽如此,我建议您首先了解一下solr中的查询基础知识,并了解qqfdefType等不同参数的工作方式以及哪些不同之处查询解析器(标准,dismax等)可供使用。参见this

答案 1 :(得分:0)

没有什么特别的配置,但是您必须使用edismax或dismax查询解析器。进行这些查询分析是为了支持自由格式的用户输入,您可以仅使用.+ | Match one or more consecutive characters (any) U | Match the letter "U" .+ | Match one or more consecutive characters (any) ( | Capture the following: \d+ | One or more consecutive digits \. | The character "." \d{2} | Exactly 2 consecutive digits ) | End capture U | Match the letter "U" .+ | Match one or more consecutive characters (any) (\d+) | Capture one or more consecutive digits g | Match the letter "g" 来使用它。您通过在查询URL中提供q=value来告诉Solr使用edismax查询解析器。

由于要搜索的字段不再是实际查询的一部分,因此您可以通过给defType=edismax参数来告诉edismax处理程序要搜索哪个字段。您可以在qf中给多个字段,也可以使用语法qf给每个字段不同的权重。

因此要获得与第一个示例相同的结果:

field^<weight>

答案 2 :(得分:0)

在Solr Admin->“查询”页面中,可以将字段名称添加到要将查询路由到的 df 。 df表示默认搜索字段。要使用该功能,您无需使用dismax或edismax解析器。 df将与标准查询解析器一起使用。因此,我希望这是您要寻找的。谢谢。