有谁知道如何向建议者添加过滤器?
这非常有效:
{
"headline-suggest" : {
"text" : "n",
"completion" : {
"field" : "headline_suggest"
}
}
但我希望强制ElasticSearch从数据子集构建建议列表,例如:
{
"headline-suggest" : {
"text" : "n",
"completion" : {
"field" : "headline_suggest"
}
},
"filter" : {
"term" : { "mydifferentfield" : "someword" }
}
}
我怎样才能实现它?
(我正在使用elasticsearch 0.90.5)
答案 0 :(得分:20)
答案 1 :(得分:2)
我对此并不十分确定,但我认为您无法过滤弹性搜索中的建议请求。
从我读到的内容是由于它存储的数据结构类型.flasticsearch计算在索引时建议的术语的统计数据,并将其用于建议操作。
您是否尝试结合提示执行普通查询?也许会有不同的结果?
curl -s -XPOST 'localhost:9200/_search' -d '{
"query" : {
...
},
"suggest" : {
...
}
}'
答案 2 :(得分:0)
无法过滤完成。 正如javanna所说,完成功能是在索引时建立在FST上的,所以你不能在这里使用过滤器。
要做到这一点,你可以使用ngram / edge ngram。 让我们在这里阅读以获得基本想法:http://jontai.me/blog/2013/02/adding-autocomplete-to-an-elasticsearch-search-application/