2014-11-22 3 views
2

완성 필드가 포함 된 간단한 사용자 정보 문서가 있습니다.탄성 검색 완료 필드 삭제 안 함

매핑 :

 "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"에 대한 제안은 삭제 될 것으로 예상됩니다.

내가 잘못하고있는 것에 대한 제안 사항이 있으십니까?

감사합니다.

답변

1

이 문제도 발생합니다. ElasticSearch 문서에 따르면 Optimize command을 사용하여 색인에서 완성 제안을 삭제해야합니다. 이것은 그들이 the Completion Suggester Docs의 하단에 말하는 것입니다.

제안 데이터 구조에 즉시 문서 의 삭제 내용이 반영되지 않을 수 있습니다. 이를 위해 최적화를 수행해야 할 수도 있습니다. 을 only_expunge_deletes = true로 최적화하여 삭제를 처리하거나 또는 병합 작업을 호출 할 수 있습니다.

...라고합니다. 나는이 한 :

curl -XPOST 'http://server:9200/attribute/_optimize?pretty' -d '{ 
    "only_expunge_deletes": true 
}' 

및 삭제 된 문서는 여전히 쿼리 또는 필터에 표시되지 않는 경우에도, 완료 SUGGESTER에 나타납니다.

... 죄송합니다. 답변이 많지 않은데 ... 답변 일뿐입니다. 나를 위해 일하지 않는 것처럼 문제가 해결되지 않을 수 있습니다.

+1

예, 나는 only_expunge_deletes로 최적화를 시도했습니다. 작동하지 않습니다. 나는 심지어 30 초, 1 분 그리고 5 분을 기다렸다. 변경 없음. 너처럼 갇혀있어! – user3658423

+0

그래서 ... 아마도 이것을 해결할 수있는 유일한 방법은 ElasticSearch를 사용하지 않는 것입니다. ;) ... 아니면 아마도 인덱스 시간 검색을 사용하는 것일까 요? – Cari

+0

그들은 절대로 완전히 사라졌습니까? – Cari

1

Index-Time Search으로 이동해야 할 수도 있습니다.이 문자는 1 문자 ngram을 사용하며 일반적인 _search 쿼리를 수행합니다.

+0

이 문제는 ngram이 인덱스 크기를 크게 증가시킵니다. 최소한 내 유스 케이스에서는. 최대 그램을 20 또는 50으로 설정하지는 않지만 데이터 및 사용 사례의 크기는 ngram으로 진행할 수 없습니다. 당신이 할 수 있기를 바랍니다. 나는 suggester에 es github를 가진 문제점을 열고있다. – user3658423

+0

이미 문제가 있으며 저크가 기능을 호출하지 못했습니다. ES 2.0에서 준비가 될 것입니다. https://github.com/elastic/elasticsearch-js/issues/117 – Cari

+0

이 링크가 더 좋으며 StackOverflow에서 해당 주석을 편집 할 수 없습니다. https://github.com/elastic/elasticsearch/issues/7761 – Cari