【问题标题】:Fielded searches with Solr ExtendedDisMax Query Parser使用 Solr ExtendedDisMax 查询解析器进行字段搜索
【发布时间】:2012-06-10 09:24:55
【问题描述】:

我在使用 Solr ExtendedDisMax 查询解析器时遇到问题,该查询解析器在非普通查询中包含 字段搜索

情况如下。

如果我向 SOLR 发送带有参数的 edismax 请求 (defType=edismax)

  1. qf=field1^10
  2. q=field2:ciao
  3. debugQuery=on(用于调试目的)

solr 按照我的预期解析查询,实际上响应的调试部分告诉我

 [parsedquery_toString] => +field2:ciao

但如果我让表达式稍微复杂一点,比如将条件放入括号中: 1. qf=field1^10 2. q=(field2:ciao) 我明白了

[parsedquery_toString] => +(((field1:field2:^2.0) (field1:ciao^2.0))~2)

Solr 似乎无法识别字段语法。

我在documentation 中没有发现任何关于这种行为的提及,而是他们说的

此解析器支持完整的 Lucene QueryParser 语法,包括布尔运算符“AND”、“OR”、“NOT”、“+”和“-”、字段搜索、术语提升、模糊...

这个问题真的让我很恼火,因为即使使用 edismax 解析器,我也想做复杂的布尔和字段查询。

您知道解决此问题的方法吗?

编辑:Solr 版本是 3.6

【问题讨论】:

标签: solr lucene edismax dismax


【解决方案1】:

如果您使用的是 Solr 3.6,则当前存在与 Solr 3.6 一起引入的 eDisMax 和 Fielded 搜索的问题。解决方法是在字段名称前加一个空格。

因此,将您的查询更改为以下内容:

  1. qf=field1^10
  2. q=(field2:ciao)

详情请见eDismax: A fielded query wrapped by parens is not recognized

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 2022-01-09
    • 2019-04-21
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2012-09-05
    • 2011-08-17
    相关资源
    最近更新 更多