我们已在单个节点上使用elasticsearch索引数据。我们在后台运行一个线程,用于使用最近的更改来更新索引。
现在我们使用弹性搜索API来运行搜索查询。
{
"from" : 0,
"size" : 20,
"timeout" : 0,
"query" : {
"filtered" : {
"query" : {
"query_string" : {
"query" : "Bug-157099*",
"default_field" : "_content",
"default_operator" : "and",
"allow_leading_wildcard" : true,
"analyze_wildcard" : true
}
},
"filter" : {
"fquery" : {
"query" : {
"query_string" : {
"query" : "pxObjClass:(\"ProjMgmt-Work-Project\")",
"default_field" : "_content",
"default_operator" : "and",
"allow_leading_wildcard" : true
}
},
"_cache" : false
}
}
}
},
"fields" : "*"
}
但是,搜索查询会返回不一致的结果。在连续重新运行查询时,有时我们会得到0个结果,有时会得到部分结果,有时我们会得到完整的结果。
我们在群集中面临此问题,其中只有一个节点是索引节点。
您能告诉我们可能导致此问题的原因吗?
答案 0 :(得分:1)
问题是由于查询中设置了超时。在我们的代码的某些部分,我们将超时设置为零。我们更正了代码,现在查询工作正常。
我在这里插入了正确的查询
{
"from" : 0,
"size" : 20,
"query" : {
"filtered" : {
"query" : {
"query_string" : {
"query" : "BUg-157099*",
"default_field" : "_content",
"default_operator" : "and",
"allow_leading_wildcard" : true,
"analyze_wildcard" : true
}
},
"filter" : {
"fquery" : {
"query" : {
"query_string" : {
"query" : "pxObjClass:(\"ProjMgmt-Work-Project\")",
"default_field" : "_content",
"default_operator" : "and",
"allow_leading_wildcard" : true
}
},
"_cache" : false
}
}
}
},
"fields" : "*"
}