【问题标题】:ElasticSearch Tokenizer keywordsElasticSearch Tokenizer 关键字
【发布时间】:2018-07-31 08:11:36
【问题描述】:

我想知道弹性搜索如何标记关键字。 例子: 所以我使用搜索框在 cmets 中搜索关键字。 当我搜索“Zelle”时,只有西班牙语的 cmets 出现了。 enter image description here 但是,如果我搜索“Zell”,所有带有“Zelle”的 cmets 都会出现,并突出显示“Zell”。 enter image description here 谁能告诉我为什么当我搜索一些关键字时,只出现了一些特定语言的 cmets?

编辑1: 映射是这样的:

 {
  "comments" : {
    "mappings" : {
      "ios" : {
        "properties" : {
          "content" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "country" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "date" : {
            "type" : "date"
          },
          "language" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "product_id" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "product_version" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "rating" : {
            "type" : "long"
          },
          "title" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          },
          "user_language" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }
        }
      }
    }
  }
}

它没有任何关于分词器的信息。 我应该如何知道哪个 tokenizer es 用于搜索?

【问题讨论】:

    标签: elasticsearch tokenize


    【解决方案1】:

    推荐你阅读官方书籍的Mapping chapter,对你有很大帮助。

    要回答您的问题,我们需要知道您的文档的映射,特别是您搜索的字段的映射。

    从外观上看,您没有使用默认分析器(称为“standard”),因为“Zell”不会匹配“Zelle”。

    在 Elasticsearch 中,您有 analyzer 可以按照您想要的方式标记您的内容。从外观上看,您的映射中设置了一些分析器,因为“Zelle”和“Zell”是匹配的。

    【讨论】:

    • 非常感谢您的回复!!我在上面编辑了我的问题,如果您需要更多信息,请告诉我。我被困在这里了。
    猜你喜欢
    • 2018-03-22
    • 2020-01-20
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多