2016-08-27 19 views
6

Bugünlerde elasticsearch tamamlama suggester kullanıyorum ve her zaman benzer sonuçlar üretmek bazı sorun var. elasticsearch tamamlama suggester yinelenen sonuç üretir

aşağıdaki deyimi ile arama Say: Yani soru Ben birleştirebilirsiniz nasıl

"my_suggestion" : [ { 
    "text" : "ni", 
    "offset" : 0, 
    "length" : 2, 
    "options" : [ { 
     "text" : "Nine West", 
     "score" : 329.0 
    }, { 
     "text" : "Nine West ", 
     "score" : 329.0 
    }, { 
     "text" : "Nike", 
     "score" : 295.0 
    }, { 
     "text" : "NINE WEST", 
     "score" : 168.0 
    }, { 
     "text" : "NINE WEST ", 
     "score" : 168.0 
    } ] 
    } ], 

veya "DOKUZ BATININ" gibi aynı sonuçları toplamak:

"my_suggestion": { 
>   "text": "ni", 
>   "completion": { 
>    "field": "my_name_for_sug" 
>   } 
>  } 

Ve aşağıdaki sonuçlar elde ve "DOKUZ WEST".

haritalama geçerli: ik_max_word

"my_name_for_sug": { 
     "type": "completion" 
     ,"analyzer": "ik_max_word" 
     ,"search_analyzer": "ik_max_word" 
     ,"payloads": true 
     ,"preserve_separators": false 
    } 

bir Çinli özgü analizörü olduğunu ve standart analiz cihazının işi yapabilir.

Teşekkür

cevap

0

Elastik öneride bulunanları otomatik yinelemeleri aynı çıkışı (en azından 2.x kadar). Henüz 5x deneme denemedim ve orada tasjifçi bazı değişiklikler var.

"text" : "Nine West", "text" : "Nine West ", "text" : "NINE WEST", "text" : "NINE WEST ", tam olarak aynı değildir: sorun böylece belgelerinizi dizine Dizininizin analizörü, gibi görünüyor. Bunları belirteçleri azaltan bir analizör kullanarak indekslemeniz ve fazladan boşlukları vb. Kesmeniz gerekir. Bunu yaptıktan sonra, istediğiniz gibi öneri için çıkarılmış çıktı almanız gerekir.