弹性搜索复合查询

时间:2017-04-07 09:48:45

标签: elasticsearch elasticsearch-dsl

我想在弹性搜索中进行复合查询? 像查询一样:co la

搜索结果返回:

  • 可口可乐350ml
  • 饮食可口可乐2L
  • 拉丁避孕套超软
  • 玉米淀粉
  • 猪油

假设我有一个索引“FOOD”并输入“AllProducts”,如何构建此搜索?

由于

补充有关映射索引的请求我使用了这个:

curl -XPUT 'localhost: 9200 / food / _settings' -d' {
             "Index.analysis.analyzer.default.filter.0 ":  "standard ",
             "Index.analysis.analyzer.default.tokenizer ":  "standard ",
             "Index.analysis.analyzer.default.filter.1 ":  "lowercase ",
             "Index.analysis.analyzer.default.filter.2 ":  "stop ",
             "Index.analysis.analyzer.default.filter.3 ": "asciifolding "
} '

使用match_phrase_prefix进行当前搜索的示例,但它只允许复合词将最后一个句子作为片段。

This.clientElastic.search ({
      Index: 'food'
      Type: 'AllProdutcts',
      Body: {
        "From": 0, "size": 50,
        Query: {
          Match_phrase_prefix: {
            NameProduct: event.srcElement.value,
            
          }
        }
      }
    }). Then (function (resp) {

      If (event.srcElement.value == "") {
        Send search = null;
      } Else {
        Env.busca = resp.hits.hits;
      }
    }, Function (err) {
      Console.log (err.message);
    });

再次感谢

0 个答案:

没有答案