【问题标题】:solr query "msg": "undefined field text", "code": 400solr 查询“msg”:“未定义的字段文本”,“代码”:400
【发布时间】:2020-05-20 14:40:11
【问题描述】:

当我运行以下查询时,我得到了结果

/select?q=:&fq=%28category_name:企业%20OR%20job_name:abcdefgh%29&debugQuery=true

但是当运行以下查询时 select?q=:&fq=%28category_name:Business%20dev%20OR%20job_name:abcdefgh%29&debugQuery=true

结果没有出来,它显示以下错误

"msg": "未定义的字段文本", “代码”:400

这两个查询之间的唯一区别是 在第一个查询中 category_name 键中没有空格 但在第二个查询中有空间。

我认为这会导致问题。请发表您的建议

【问题讨论】:

    标签: solr


    【解决方案1】:

    当不存在字段名称时,将使用默认搜索字段。默认情况下,这是_text_text。在您的查询中:

    category_name:Business dev
    

    .. 这不会被解析为“在category_name 中搜索值Business dev”,但它被解析为“在默认搜索字段中搜索category_namedev 中的值Business(在您的情况下,这似乎是text)。

    您可以通过正确转义空间来解决此问题:

    category_name:Business\ dev
    

    .. 或使用短语查询:

    category_name:"Business dev"
    

    special characters that needs escaping (as they have specific meaning in a query) is:

    + - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
    

    .. 以及空格。这应该由您的 Solr 库自动处理。

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 2012-09-03
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2010-09-20
      相关资源
      最近更新 更多