如何获取有关多种类型的多个字段的弹性搜索建议?

时间:2016-01-23 10:07:53

标签: elasticsearch

我要求在网站上全局设置一个搜索框,用户可以输入任何内容,有点像google。当用户打字时,他应该得到建议。我在索引中有多种类型,我使用完成建议来从以下一个字段获取建议:

GET /index/_suggest/
{
    "person-suggest" : {
"text" : "m",
"completion" : {
    "field" : "nameSuggest"
    }
  }
}

要求是这样的,当他们输入以人格类型存储的人名或输入以公司类型存储的公司名称时......两个建议都应该出现。此外,在同一类型中,它应该能够基于多个字段建议,而不仅仅是像我所拥有的那样。最后,一旦用户选择了建议,请进行搜索并显示基于多种类型的构面。

1 个答案:

答案 0 :(得分:0)

对于多个字段的多类型建议,请使用 -

curl -XPOST 'localhost:9200/indexName/type1,type2/_suggest' -d '{
  "my-suggestion-1" : {
    "text" : "some text",
    "term" : {
      "field" : "field1"
    }
  },
"my-suggestion-2" : {
    "text" : "some text",
    "term" : {
      "field" : "field2"
    }
  }
}'