弹性搜索-文本搜索不工作


Elastic search - text search not working

我需要搜索具有多个字段的特殊字符的文本内容。name_text包含"你好,你好吗?"

如果我搜索单词"how","are"我得到了结果,但如果搜索单词"how",我没有得到结果。

用于查找已使用的

{"simple_query_string": {
                        "query":  "thow",
                        "flags" : "OR|AND|PREFIX",
                       "analyzer": "snowball",
                        "fields": [ "name_text", "address_text" ]
                        }

我使用了nGram,这是我的代码

  "settings":{ "index": {
  "analysis": {
            "analyzer": {
                "autocomplete_term": {
                    "tokenizer": "autocomplete_edge",
                    "filter": [
                        "lowercase"
                    ]
                },
                "autocomplete_search": {
                    "tokenizer": "keyword",
                    "filter": [
                        "lowercase"
                    ]
                }
            },
            "tokenizer": {
                "autocomplete_edge": {
                    "type": "nGram",
                    "min_gram": 1,
                    "max_gram": 100
                }
            }
        }
}

和映射

"name_text": {
    "type": "string",
    "analyzer": "autocomplete_term"
    "search_analyzer": "autocomplete_search"
},
"address_text": {
    "type": "string",
     "analyzer": "autocomplete_term"
    "search_analyzer": "autocomplete_search"
}

我的代码有什么问题吗?

你需要模糊搜索来匹配:

"simple_query_string": {
  "query": "thow~1",
  "flags": "OR|AND|PREFIX|FUZZY",
  "analyzer": "snowball",
  "fields": [
    "name_text",
    "address_text"
  ]
}