首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngrams在elasticsearch中不工作

ngrams在elasticsearch中不工作
EN

Stack Overflow用户
提问于 2016-04-19 20:02:09
回答 1查看 248关注 0票数 0

我使用elasticsearch ngram

代码语言:javascript
复制
"analysis": {
    "filter": {
        "desc_ngram": {
            "type": "ngram",
            "min_gram": 3,
            "max_gram": 8
        }
    },
    "analyzer": {
        "index_ngram": {
            "type": "custom",
            "tokenizer": "keyword",
            "filter": [ "desc_ngram", "lowercase" ]
        },
        "search_ngram": {
            "type": "custom",
            "tokenizer": "keyword",
            "filter": "lowercase"
        }
    }
}

我这里有两个对象

代码语言:javascript
复制
{
    "name": "Shana Calandra",
    "username": "shacalandra",
},
{
    "name": "Shana Launer",
    "username": "shalauner",
},

并使用以下查询

代码语言:javascript
复制
{
    query: {
        match: {
            _all: "Shana"
        }
    }
}

当我使用这个查询进行搜索时,它会返回两个文档,但我不能在这里按单词的一部分进行搜索,例如,我不能在查询中使用"Shan“而不是"Shana”,因为它没有返回任何内容。

也许我的映射是错误的,我不能理解问题出在映射上还是查询上

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 20:17:52

如果您指定

代码语言:javascript
复制
  "mappings": {
    "test": {
      "_all": {
        "index_analyzer": "index_ngram",
        "search_analyzer": "search_ngram"
      },

对于_all字段的映射,它将会起作用。_all有自己的分析器,我怀疑你只为nameusername使用了分析器,而不是_all

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36717776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档