Elasticsearch查询multi_match

时间:2019-02-25 10:20:56

标签: elasticsearch

我正在尝试创建一个可搜索多个字段的elasticsearch查询。到目前为止,这个工作正常。但是,我想对此进行完善。 假设该词已编入索引:“测试”。但是,当我搜索“ tes”时,他找不到适合我的单词,但是我已经想显示它了-但是与查询的结合使我面临挑战。

             {
             "multi_match" : {
               "query":      "*" + query + "*",
               "type":       "cross_fields",
               "operator":   "and",
               "fields":     ["article.number^1","article.name_de^1", "article.name_en^5", "article.name_fr^5", "article.description^1"],
               "tie_breaker": 0,
             }

1 个答案:

答案 0 :(得分:1)

根据您的限制,这是您的选择。

如果您想在搜索词之前/之后使用通配符,则可以使用wildcard query。这在查询时具有很高的处理成本。

如果可以选择增加存储成本,则可以选择在分析过程中标记输入内容。参见ngram tokenizer。请注意,如果字符串很长,它可能会迅速激增存储需求。