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