Elasticsearch - 如何突出仅供精确文字匹配停止词?

问题描述 投票:0回答:1

是否有可能以突出它发生在一个短语停止的话,而不是强调其单独出现停止的话吗?

例如,我想强调的“指环王”,“环”,或“主”。但我不想Elasticsearch突出“的”或“”如果它们出现孤独。

我使用的索引设置english_stop分析。该分析仪删除所有停用词,因此它不会突出显示搜索结果中的任何停止词。但是,如果我删除english_stop分析仪,那么它处处彰显停止词,如“中”,“中”,甚至当他们单独出现。我不能添加使用英语仪另一场,因为我有很多的文件,并重新索引的成本太高。

有没有一种方法仅强调在一个短语匹配停止的话,而不必改变索引架构?

我的指数模板:

  "template": "index_name",
  "settings": {
    "index": {
      "analysis": {
        "analyzer": {
          "english": {
            "tokenizer": "tokenizer_name",
            "filter": [
              "standard",
              "lowercase",
              "english_stop",
              "kstem"
            ]
          },

这是搜索查询高亮结果的“指环王”

在指环王是由英国作家J·R·R·托尔金写的史诗大幻想小说。故事开始为续集托尔金的1937年奇幻小说霍比特人,但最终发展成为一个更大的工作。写在1937年和1949年之间的阶段,指环王是最畅销的小说之一

elasticsearch highlight stop-words
1个回答
0
投票

如果您使用的查询字符串,然后使用phrase_slop财产在那里将只强调环和主。我们有同样的问题,这解决了这个问题,但是这也有一个限制,其中ES将不能够“人在月球”和“月球上的人”的区分。它会突出人和月亮出现因为“”和“”都是停用词。

https://www.elastic.co/guide/en/elasticsearch/guide/master/stopwords-phrases.html#_stopwords

© www.soinside.com 2019 - 2024. All rights reserved.