【问题标题】:solr Edismax parser qf parameter behavior weird?solr Edismax 解析器 qf 参数行为怪异?
【发布时间】:2015-08-06 16:18:28
【问题描述】:

我是 solr 的新手,尝试使用旨在更方便的 Edismax 解析器。

我有两个小问题。 1.根据教程,我们可以使用q&qf参数的组合:

"params": {
  "mm": "3",
  "q": "distributed system solr",
  "defType": "dismax",
  "indent": "true",
  "qf": "id",
  "fl": "id,score",
  "rows": "100",
  "wt": "json",
  "_": "1438877562378"
}

但如果是这样,根本就没有结果。为什么会这样?

  1. 我移至 q.alt 字段。

"params": { "mm": "3", "defType": "dismax", "q.alt": "distributed system solr", "indent": "true", "qf": "id", "fl": "id,score", "rows": "100", "wt": "json", "_": "1438877657837" } },

据我了解,它应该只对 qf : id 字段进行查询。但正如结果所示,我认为它也在数据内容或数据流中查询“q”字段来创建分数。我可能会误解某些观点,但想知道分数是如何产生的。它应该只对 id 字段进行查询吗?

【问题讨论】:

  • 你能分享你的 solrcongfig.xml 选择处理程序吗?
  • 将 debugQuery 添加到您的查询中(您可以在管理查询界面中轻松完成此操作),这将允许您查看正在查询哪些字段。 qf 告诉 dismax 处理程序它应该搜索哪些字段,因此第一个查询在名为 id 的字段中搜索“分布式系统 solr”的所有三个术语 - 这似乎是 id 字段中的奇怪内容.如果您打算使用 edismax 解析器,您可能应该使用 edismax 而不是 dismax
  • @MatsLindh,是的,我试过edismax,这一次,我看看我是否在id中设置了搜索字段,在q中设置了搜索参数,例如,如果q ='2015-06-10T00: 00:00Z' id='date' 有结果。但是如果q='2015-06-10T',没有结果,我的意思是不支持模糊匹配或者正则匹配的东西,很奇怪
  • 如果要查询日期字段,如果要查询特定日期的所有值,则必须使用正确的语法。你不能只使用前缀。

标签: solr


【解决方案1】:

您正在指定一个 qf(查询字段)== id。您确定文档在 ID 字段中有匹配的数据吗?可能不是。我建议在 qf 中添加更多字段

【讨论】:

    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多