Elasticsearch通过其他文档查找文档

时间:2014-11-17 17:04:39

标签: elasticsearch

我想在elasticsearch中搜索与id docId的给定文档具有完全相同字段的文档。对于例如用户使用docId调用api,我想过滤文档,以便返回的所有文档都在docId中完成一些参数。

例如,我可以像这样查询Elasticsearch:

POST similarTerms/_search
{
    "fields": [
       "_id", "title"
    ]   ,
    "filter": {
    "query": {"match": {
       "title": doc[docId].title
    }}
    }, 
    "size": 30

}

我知道我可以使用docId获取文档然后我可以准备上面的查询,但是我可以以某种方式避免网络跳跃,因为即使是毫秒的时间改进也是我的应用程序非常关注的问题。

由于

1 个答案:

答案 0 :(得分:0)

这是"更像是这样的教科书情节" API。引自the docs

  

更像这样(mlt)的API允许获取" like"一个   指定文件。这是一个例子:

     

$ 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=0min_doc_freq=0GET /my_index/locations/1/_mlt?min_term_freq=0&min_doc_freq=0