elasticsearch Elasticsearch[2.3]-建议查询不返回更新的文档,elasticsearch,autocomplete,elasticsearch,Autocomplete" /> elasticsearch Elasticsearch[2.3]-建议查询不返回更新的文档,elasticsearch,autocomplete,elasticsearch,Autocomplete" />

elasticsearch Elasticsearch[2.3]-建议查询不返回更新的文档

elasticsearch Elasticsearch[2.3]-建议查询不返回更新的文档,elasticsearch,autocomplete,elasticsearch,Autocomplete,我一直在尝试用elastic更新一些自动建议文档: {"update":{"_index":"my_autosuggest_index", "_type":"my_autosuggest_type", "_id": "123"}} {"doc" : {my-updated-doc}, "doc_as_upsert" : true} 当直接使用请求更新的文档123时,更新工作正常 GET /my_autosuggest_index/my_autosuggest_type/123 我确实看到了更

我一直在尝试用elastic更新一些自动建议文档:

{"update":{"_index":"my_autosuggest_index", "_type":"my_autosuggest_type", "_id": "123"}}
{"doc" : {my-updated-doc}, "doc_as_upsert" : true}
当直接使用请求更新的文档123时,更新工作正常

GET /my_autosuggest_index/my_autosuggest_type/123
我确实看到了更新的文档

但是,当使用以下工具查询更新的文档时:

/my_autosuggest_index/_suggest

{
  "hotels-suggest": {
    "text": "London",
    "completion": {
      "field": "suggest",
      "size": 10,
      "context": {
        "displayType": "Airports"
      }
    }
  }
}
在更新之前,我得到了
doc123

已尝试清除缓存-仍在获取未更新的文档

我找不到任何文件,也想不出对这种奇怪行为的任何其他解释


谢谢。

我们面临同样的问题。这是由于elasticsearch处理文档更新和删除的方式造成的

你可以读一些关于它的书

elasticsearch中的所有文档都是不可变的。由于文档是不可变的,因此更新文档时,会将旧文档标记为删除,并创建新文档。当elasticsearch索引中的段合并时,旧文档将被真正删除。问题就在这里。在我的例子中,当我们使用建议查询时,我们得到了两个结果

要克服此问题,可以在更新后强制合并段。这是缓慢的,但工作

POST/index\u name/\u optimize?max\u num\u segments=1

我认为optimizeapi已经被弃用了


如果它不起作用,您也可以使用

谢谢您的回答,我尝试了强制合并-由于磁盘空间不足而压碎了节点..哦!!。。你能恢复数据吗?你能检查一下日志看看它是不是崩溃了?除了足够的磁盘空间,还有其他原因吗。