我在OpenSearch中索引了许多文档。有人告诉我可以进行“相关文档”搜索,在那里我可以找到与ID为 X 的文档类似的文档,但无法找到任何示例或文档。有没有可能获取一个文档ID,然后找到 N 个与之相似的文档?任何例子或文档,你可以告诉我使用Java客户端将是非常有帮助的!
jdzmm42g1#
是的,你可以用more_like_this query来做,因为它在OpenSearch文档中没有真正解释,你可以参考more_like_this query上的Elasticsearch。如下所示,您可以在my-index中搜索与my-other-index中ID为1的另一个特定文档相似的文档:
more_like_this
my-index
my-other-index
GET my-index/_search { "query": { "more_like_this": { "fields": [ "title", "description" ], "like": [ { "_index": "my-other-index", "_id": "1" } ], "min_term_freq": 1, "max_query_terms": 12 } } }
字符串like是一个数组,您可以指定任意多个文档以及自由文本。关于使用OpenSearch Java客户端执行此操作,它应该是这样的:
like
MoreLikeThisQuery moreLikeThisQuery = MoreLikeThisQuery.of(mlt -> mlt.fields("title", "description") .minTermFreq(1) .maxQueryTerms(12) .like(List.of(Like.of(l -> l.document(LikeDocument.of(ld -> ld.id("1").index("my-other-index") )) ))) );
型
1条答案
按热度按时间jdzmm42g1#
是的,你可以用
more_like_this
query来做,因为它在OpenSearch文档中没有真正解释,你可以参考more_like_this
query上的Elasticsearch。如下所示,您可以在
my-index
中搜索与my-other-index
中ID为1的另一个特定文档相似的文档:字符串
like
是一个数组,您可以指定任意多个文档以及自由文本。关于使用OpenSearch Java客户端执行此操作,它应该是这样的:
型