我想在elasticsearch中搜索与id docId给定文档具有完全相同字段的文档。例如用户使用 docId 调用 api,我想过滤文档,以便返回的所有文档都满足 docId 中的某些参数。
例如,我可以像这样查询 Elasticsearch:
POST similarTerms/_search
{
"fields": [
"_id", "title"
] ,
"filter": {
"query": {"match": {
"title": doc[docId].title
}}
},
"size": 30
}
我知道我可以使用 docId 获取文档,然后我可以准备上述查询,但是我可以以某种方式避免网络跳跃,因为即使是几毫秒的时间改进也是我的应用程序非常关心的。
Thanks
这是“more like this”api 的教科书场景。引用自the docs http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-more-like-this.html:
more like this (mlt) API 允许获取“类似”的文档
指定文件。这是一个例子:
$ curl -XGET
'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'
该 API 只是使用 moreLikeThis 执行搜索请求
查询(http参数与more_like_this的参数匹配
询问)。这意味着请求正文可以选择包含
搜索 API 中的所有请求正文选项(aggs、from/to 等
在)。在内部,更像这个API相当于执行一个
more_like_this_field 查询的布尔查询,每个查询一个查询
指定的 mlt_fields。
如果您计划仅使用一个文档进行测试(就像我所做的那样),请确保您还设置了min_term_freq=0
and min_doc_freq=0
: GET /my_index/locations/1/_mlt?min_term_freq=0&min_doc_freq=0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)