Elasticsearch more_like_this查询异常:返回指定ID文档求助
问题排查与解决方案
你的问题出在两个核心错误上:
include参数位置错误,它属于more_like_this查询的内部参数,而非查询的根级别- 传入了字符串类型的
"false"/"False",但该参数要求布尔类型的false
正确的查询语句
{ "query": { "more_like_this": { "fields": "_doc", "like": [ { "_id": "5fac83afdce931230ef44c0a" }, { "_id": "5f80096adce931230e8bdb2d" } ], "include": false } } }
如果使用docs嵌套结构,写法如下:
{ "query": { "more_like_this": { "fields": "_doc", "like": { "docs": [ { "_id": "5fac83afdce931230ef44c0a" }, { "_id": "5f80096adce931230e8bdb2d" } ] }, "include": false } } }
补充说明
当include设为布尔值false时,MLT查询会自动排除你在like列表中指定的所有文档,不会再返回那些_id匹配的结果。之前的写法因为参数位置错误,Elasticsearch无法识别该配置,所以仍然返回了原文档。
内容的提问来源于stack exchange,提问作者Akarsh Shrivastava
相关产品推荐
相关产品推荐

