简单查询字符串搜索中的多词短语不会返回突出显示数据,但会返回任何非零斜率

pkbketx9  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(224)

当使用简单的查询字符串时,我有一个特殊的突出显示行为,任何突出显示(普通、统一、fvh)
突出显示简单查询字符串使用术语(而不是短语)时的工作:仅使用术语时的工作
当您关闭报价单时,突出显示将停止工作,有效地使常规会议成为一个短语:作为短语搜索时根本不工作
但是,如果我将slop of任何大于0的值添加到以前的“不工作”短语中,它会再次正常工作,尽管结果集是错误的,因为我不想要slop结果:但是如果我slop,它会正常工作
当使用直接api请求时,当搜索具有零slop(或未定义slop)的短语时,突出显示键在结果中完全消失,从而导致上述第二步中的行为。
我也尝试过重写highlight查询,同样的问题。下面是我在这些示例中使用的查询,我还通过硬编码字符串和api调用直接复制了此行为:

"query": {
          "simple_query_string": {
            "query": query,
            "fields": ["title", "content"]
          }
        },
        "highlight": {
          "fields": {
            "title": {},
            "content": {}
          }
        }

突出显示的相关字段(标题、内容)具有如下Map:

"properties" : {
    "content" : {
      "type" : "text",
      "fields" : {
        "autosuggest" : {
          "type" : "text",
          "analyzer" : "autosuggest_analyzer",
          "search_analyzer" : "ngram_search_analyzer"
        },
        "delimiter" : {
          "type" : "text",
          "index_options" : "offsets",
          "analyzer" : "universal_delimiter_analyzer"
        },
        "keyword" : {
          "type" : "keyword",
          "ignore_above" : 256
        },
        "lang" : {
          "type" : "text",
          "analyzer" : "universal"
        },
        "synonyms" : {
          "type" : "text",
          "analyzer" : "synonyms"
        }
      },
      "analyzer" : "standard",
      "index_prefixes" : {
        "min_chars" : 1,
        "max_chars" : 12
      },
      "index_phrases" : true
    },
    "title" : {
      "type" : "text",
      "fields" : {
        "autosuggest" : {
          "type" : "text",
          "analyzer" : "autosuggest_analyzer",
          "search_analyzer" : "ngram_search_analyzer"
        },
        "delimiter" : {
          "type" : "text",
          "index_options" : "offsets",
          "analyzer" : "universal_delimiter_analyzer"
        },
        "keyword" : {
          "type" : "keyword",
          "ignore_above" : 256
        },
        "lang" : {
          "type" : "text",
          "analyzer" : "universal"
        },
        "synonyms" : {
          "type" : "text",
          "analyzer" : "synonyms"
        }
      },
      "analyzer" : "standard",
      "index_prefixes" : {
        "min_chars" : 1,
        "max_chars" : 12
      },
      "index_phrases" : true
    },
    ...

最后,这里是版本信息:

"version" : {
    "number" : "7.9.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "a479a2a7fce0389512d6a9361301708b92dff667",
    "build_date" : "2020-08-11T21:36:48.204330Z",
    "build_snapshot" : false,
    "lucene_version" : "8.6.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },

有人碰到过这个吗?我在这里有什么明显的缺失吗?这很令人困惑,因为它可以很好地处理slop,但在其他情况下,它甚至不会在结果中返回高亮显示条目。迄今为止,我所看到的其他问题/解决方案似乎都与这个问题无关。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题