ElasticSearch Tokenizer关键字

时间:2018-07-31 08:11:36

标签: elasticsearch tokenize

我想知道弹性搜索如何将关键字标记化。 例: 因此,我正在使用搜索框搜索评论中的关键字。 当我搜索“ Zelle”时,仅显示西班牙语注释。 enter image description here 但是,如果我搜索“ Zell”,则会显示所有带有“ Zelle”的评论,并突出显示“ Zell”。 enter image description here 谁能告诉我为什么当我搜索某些关键字时,只显示某些特定语言的注释吗?

编辑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用于搜索?

1 个答案:

答案 0 :(得分:0)

我建议您阅读官方书籍的Mapping chapter,它将对您有很大帮助。

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

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

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