如何在pyes中使用“建议”功能?由于文档很差,似乎无法弄明白。有人能提供一个有效的例子吗?我试过的一切似乎都没有用。在其查询下列出的文档中,但使用:
query = Suggest(fields="fieldname")
connectionobject.search(query=query)
答案 0 :(得分:6)
从第5版开始:
_suggest端点已被弃用,转而使用通过_search端点建议。在5.0中,_search端点已经过优化,仅用于建议搜索请求。
(来自https://www.elastic.co/guide/en/elasticsearch/reference/5.5/search-suggesters.html)
更好的方法是使用带有suggest
选项
from elasticsearch import Elasticsearch
es = Elasticsearch()
text = 'ra'
suggest_dictionary = {"my-entity-suggest" : {
'text' : text,
"completion" : {
"field" : "suggest"
}
}
}
query_dictionary = {'suggest' : suggest_dictionary}
res = es.search(
index='auto_sugg',
doc_type='entity',
body=query_dictionary)
print(res)
确保已使用suggest
字段
sample_entity= {
'id' : 'test123',
'name': 'Ramtin Seraj',
'title' : 'XYZ',
"suggest" : {
"input": [ 'Ramtin', 'Seraj', 'XYZ'],
"output": "Ramtin Seraj",
"weight" : 34 # a prior weight
}
}
答案 1 :(得分:3)
这是我的代码完美运行。
from elasticsearch import Elasticsearch
es = Elasticsearch()
text = 'ra'
suggDoc = {
"entity-suggest" : {
'text' : text,
"completion" : {
"field" : "suggest"
}
}
}
res = es.suggest(body=suggDoc, index="auto_sugg", params=None)
print(res)
我使用了elasticsearch网站here上提到的同一个客户端 我使用here
中的completion suggester
将弹性搜索索引中的数据编入索引