我有一个相对简单的搜索索引,用于简单的纯文本查询。没有路由,自定义分析器或类似的东西。一个搜索实例/节点,一个索引。
我删除了索引中的文档,RESTfull API确认:
GET / INDEX_NAME / person / 464
{
"_index": "INDEX_NAME",
"_type": "person",
"_id": "464",
"exists": false
}
然而,文档是从简单的搜索返回的
POST / INDEX_NAME / person
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "person.offices",
"query": "Chicago"
}
}
]
}
}
}
返回的一行:
{
"_index": "INDEX_NAME",
"_type": "person",
"_id": 464,
"_score": null,
"fields": [
...
]
}
我是ElasticSearch的新手,并认为在深入挖掘之前我终于掌握了基本概念。但我不确定为什么文档无法通过REST访问,但它仍然出现在结果中?
我也遇到了相反的问题,即从API返回文档但是它们没有在搜索中返回。为了清楚起见,我暂时考虑一个单独的问题,但我觉得这两个问题可能是相关的。
我的一部分想要删除我的索引并重建它,但我不想在几天内陷入相同的情况(我不确定这是否会有所帮助)。
关于为什么会出现这种差异的任何想法或指示?也许一个进程处于某种僵尸状态,而弹性搜索只需要重新启动?