【问题标题】:Elasticsearch - Include fields in highlight excluded in _sourceElasticsearch - 包括在_source中排除的突出显示字段
【发布时间】:2019-08-07 18:43:01
【问题描述】:

我知道在 _source 映射中标记为 excluded 的对象可以包含在搜索查询中。但是我需要在响应的突出显示部分中包含匹配的术语。

例如 我有一个像这样的映射:

{
  "mappings": {
    "doc": {
      "_source": {
        "excludes": ["some_nested_object.complex_tags_object"]
      },
      "properties": {
        "some_nested_object": {
          "type": "nested"
        }
      }
    }
  }
}

搜索查询:

GET my_index/_search {
    "size": 500,
    "query": {
        "bool": {
            "must": [{
                    "nested": {
                        "query": {
                            "bool": {
                                "must": 
                                [{
                                    "match_phrase_prefix": {
                                        "some_nested_object.complex_tags_object.name": {
                                            "query": "account"
                                        }
                                    }
                                }
                                ]
                            }
                        },
                        "path": "some_nested_object"
                    }
                }
            ]
        }
    },  
    "highlight": {
        "pre_tags": [
            ""
        ],
        "post_tags": [
            ""
        ],
        "fields": {
            "some_nested_object.complex_tags_object.name": {}
        }
    }
}

如果我不在映射中排除,而是在运行时的搜索查询中排除,那么我可以在 highlight 部分中返回匹配项,但由于对象。

那么是否可以在mapping/doc/_source 中包含标记为exclude 的字段作为highlight 的一部分?

【问题讨论】:

    标签: elasticsearch lucene


    【解决方案1】:

    那么是否可以在 mapping/doc/_source 中包含标记为 exclude 的字段作为突出显示的一部分?

    很遗憾,您的问题的简短回答是。来自 Elasticsearch highlighting documentation

    突出显示需要字段的实际内容。如果不存储该字段(映射未将store设置为true),则加载实际的_source,并从_source中提取相关字段。

    你有几个选择,每一个都涉及妥协:

    • 如果您绝对需要支持突出显示字段,请将您的字段重新包含到源代码中(我知道这会与首先将其从源代码中排除的原因相冲突)
    • 放宽支持在该字段上突出显示的要求(妥协功能)
    • 在 Elasticsearch 之外为该字段实施突出显示功能(这可能会影响您的解决方案质量和成本)

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2020-02-14
      • 2013-05-22
      • 2013-08-24
      • 1970-01-01
      • 2015-03-30
      • 2013-08-15
      • 2015-11-06
      • 1970-01-01
      相关资源
      最近更新 更多