単純なプレーン テキスト クエリ用に構築された比較的単純な検索インデックスがあります。ルーティング、カスタム アナライザーなどはありません。1 つの検索インスタンス/ノード、1 つのインデックス。
削除したインデックス内のドキュメントがあり、RESTfull API は次のことを確認します。
GET /INDEX_NAME/person/464
{
"_index": "INDEX_NAME",
"_type": "person",
"_id": "464",
"exists": false
}
ただし、ドキュメントは単純な検索から返されています
POST /INDEX_NAME/人
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "person.offices",
"query": "Chicago"
}
}
]
}
}
}
返される行の 1 つ:
{
"_index": "INDEX_NAME",
"_type": "person",
"_id": 464,
"_score": null,
"fields": [
...
]
}
私はElasticSearchを初めて使用し、深く掘り下げる前に基本的な概念をようやく把握したと思いました。しかし、REST 経由でドキュメントにアクセスできないのに、結果にまだ表示されている理由がわかりません。
また、ドキュメントが API から返される逆の問題も発生していますが、検索では返されません。明確にするために、当面は別の問題と考えていますが、これら2つの問題は関連している可能性があると感じています。
私の一部は、インデックスを削除して再構築したいと考えていますが、数日で同じ状況に陥りたくありません (それが役立つかどうかもわかりません)。
この不一致が発生する理由についてのアイデアや指針はありますか? プロセスが何らかのゾンビ状態にあり、elasticsearch を再起動する必要があるのではないでしょうか?