elasticsearch,Javascript,elasticsearch" /> elasticsearch,Javascript,elasticsearch" />

Javascript elasticsearch完成字段未删除

Javascript elasticsearch完成字段未删除,javascript,elasticsearch,Javascript,elasticsearch,我有一个简单的用户信息文档,其中包括一个完成字段 映射: "properties" : { "fname" : { "type" : "string" }, "lname" : { "type" : "string" }, "dob" : { "type" : "string" }, "sex" : { "type" : "string" }, "autocomplete" : { "

我有一个简单的用户信息文档,其中包括一个完成字段

映射:

      "properties" : {
        "fname" : { "type" : "string" },
        "lname" : { "type" : "string" },
        "dob" : { "type" : "string" },
        "sex" : { "type" : "string" },
        "autocomplete" : {
          "type" :     "completion"
         }
      }
这是我的文档的一个示例

"person" : {
            "sex"       : "Male",
            "dob"      : "11/11/2014",         
            "fname"      : "Julie",
            "lname"      : "Thomas",
            "autocomplete"      : "Julie Thomas"
  }
完整的建议查询工作得非常好。但是,当我删除此文件时,对于“Julie Thomas”的完整建议仍然存在,而我预期此文件也将被删除

有没有关于我做错了什么的建议


谢谢

我也有这个问题。根据ElasticSearch文档,需要使用从索引中删除完成建议。这是他们在文章末尾所说的

建议的数据结构可能不反映文档上的删除 马上。您可能需要对此进行优化。你可以打电话 使用only_expunge_deletes=true进行优化,以仅满足删除要求 或者调用合并操作

。。。也就是说。我这样做:

curl -XPOST 'http://server:9200/attribute/_optimize?pretty' -d '{
    "only_expunge_deletes": true
}'
而被删除的文档仍然会显示在完成建议中,即使它不会显示在查询或过滤器中


。。。很抱歉答案不多。。。它应该是答案,但它可能对你不起作用,就像它对我不起作用一样。

我们可能必须移动到,它使用1个字符的ngram并执行正常的搜索查询

在数据中添加一个id字段,然后重新引用该id字段进行删除和更新,这对我们很有用

"index":{"_index":"esIndex","_type":"document","_id":"23d68f060118fbeee699d14eff044a1f"}}
 {"text":"vision zero","id":"23d68f060118fbeee699d14eff044a1f","suggest":{"input":"vision zero","payload":{"entity_id":"23d68f060118fbeee699d14eff044a1f"}},"type":"Content"}

类似于上面的批量查询数据,请注意数据中的id字段。如果我们不把它放进去,我们会面临同样的问题,即删除文档后,它仍然会显示在建议中。

是的,我尝试过只使用“删除”来优化。不起作用。我甚至等了30秒,1分钟5分钟。。。如果有刷新等着发生的话。没有变化。像你一样被卡住了!所以也许解决这个问题的唯一方法就是不要使用ElasticSearch。。。或者使用索引时间搜索,而不是他们为了这个目的而加入的功能?他们有没有删除过?问题是ngram极大地增加了索引的大小。至少在我的用例中。并不是说我将max gram设置为20或50,而是因为我的数据和用例的大小,我们无法继续使用ngram。希望你能。我在suggester上打开了一个Gites Hub的问题。已经有一个问题,一些混蛋关闭了它,称之为功能。它将在ES 2.0中准备好此链接更好,StackOverflow不允许我编辑该评论。