【问题标题】:Solr query a particular field ONLY using qf: parameterSolr 仅使用 qf: 参数查询特定字段
【发布时间】:2017-03-21 07:45:17
【问题描述】:

我正在尝试在特定字段中搜索一组特定的关键字 keyword1keyword2keyword3。我正在使用查询来做到这一点,

http://localhost:8983/solr/gettingstarted_shard2_replica2/browse?q=keyword1 关键字 2 关键字 3&qf=field1

但是,当我运行它时,它会在另一个字段 field2 中找到 keyword2 并返回该行!据我了解,qf:field1 参数限制了对 field1 中所有关键字的搜索,对吧?

我哪里错了?是因为我定义的架构吗?

我的架构配置是:

<field name="field1" type="text_general" indexed="true"/>
<field name="field2" type="strings" indexed="false"/>

【问题讨论】:

  • 看过你的solrconfig.xml了吗?也许您的查询处理程序配置了对qf 参数的覆盖。
  • 更改默认解析器。将defType=dismax 添加到您的网址

标签: indexing solr field


【解决方案1】:

免责声明:我是Solr Query Debugger Google Chrome 插件的作者。

我建议使用此调试器来查看正在执行的内容并解释为什么您的查询具有如此奇怪的行为。

只需在浏览器中执行 solr 查询,然后启动 Solr Query Debugger 插件。

在插件页面中,您将看到 DebugEcho 选项卡,其中解释了 Solr 执行的操作。在Explain 选项卡中,您会看到结构为树的分数说明。

【讨论】:

  • 我试试看!不幸的是,我在一个只支持 firefox 的虚拟机上。
【解决方案2】:

您使用的是标准(默认)查询解析器还是 eDisMax 解析器?如果是标准的(很可能),那么您需要使用 df 参数。

qf参数与eDisMax一起使用,但你还需要有defType=edismax

启用调试标志将显示实际针对哪些字段发出搜索。

【讨论】:

    猜你喜欢
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多