3
我有1702文件索引在弹性搜索,其中有类别作为其中一个领域,它也有一个名为SequentialId字段。More_like_this查询与过滤器
我最初是从文档1和文档850之间提取类别为1.1的文档,如下所示。
**POST testucb/docs/_search
{
"size": 1702,
"query": {
"bool": {
"must": [
{"match": {
"Category": "1.1"
}}
],
"filter":[
{
"range":
{
"SequentialId":
{
"gte":1,
"lte":850
}
}
}
]
}
}
}**
上面的查询给了我这匹配1.1类834页的文件。(我有二进制文件从生成的JSON输出解析出834个_ids。)现在 我的目标是提供这些834个_ids到more_like这个查询作为其余文档的训练集,这是我的测试集(来自sequentialid 851到1702的文档是我的测试集)
我试着用这个过滤器在下面查询more_like_this。
POST /testucb/docs/_search
{
"size": 1702,
"fields": [
"SequentialId",
"Category",
"PRIMARY_CONTENT_EN"
],
"query": {
"more_like_this":
{
"fields": [
"PRIMARY_CONTENT_EN"
],
"like":[
<-----------834 _ids goes here ---->
],
**"filter":[
{
"range":
{
"SequentialId":
{
"gte":851,
"lte":1702**
}
}
}
],
"min_term_freq": 1,
"min_doc_freq": 1,
"max_query_terms": 15,
"min_word_len": 3,
"stop_words": [
],
"boost": 2,
"include":false
}
}
}
我收到查询解析异常,说MLT不支持过滤器。 我不知道如何提供从851到1702的顺序号作为我的测试集剩余的文件。
我希望能够清楚我所期望的成就。您们可以帮我解决我的任务吗?我是新的弹性搜索。
很好的5.3 – perry