2016-04-12 14 views
0

"Fuzzy" query_string araması çalıştırmaya çalışıyorum, herhangi bir fikir yanlış olabilir? Fuzziness parametresi, query_string için geçerli ve istisna atılmadı.Fuzziness sorgu_string için göz ardı ediliyor

{ 
    "query": { 
    "bool": { 
     "should": { 
     "query_string": { 
      "default_field": "title", 
      "query": "index" 
     } 
     } 
    } 
    } 
} 

şey bulamıyor:

bir sonuç bulur bir sorgu dizesi için

{ 
    "query": { 
    "bool": { 
     "should": { 
     "query_string": { 
      "default_field": "title", 
      "query": "indexa", 
      "fuzziness": 9000 
     } 
     } 
    } 
    } 
} 

cevap

0

, açıkça "fuzzy operator"~ kullanmak gerekir.

Dene: örneğin kullanıcı AND gibi operatörler kullanmasına izin (eğer arama yapıyorsanız hangi alan biliyorsanız Alternatif

"query_string": { 
     "default_field": "title", 
     "query": "indexa~", 
     "fuzziness": "AUTO" 
    } 

, bir fuzzy match query kullanabilir ve sorgu dizesi yetenekleri gerekmez ya OR özel artırır vb)

"match": { 
     "title": { 
     "query": "indexa", 
     "fuzziness": "AUTO" 
     } 
    } 

Ayrıca böylece 9000 geçerli bir değer değil, fuzzinessonly accepts the values 1, 2 or AUTO, her iki durumda da dikkat tanıtmak veya.

+0

Cevabınız için teşekkür ederiz. Mümkün olduğu kadar bulanık olduğunu/göstermek için (whitch geçerli), 9000 için bulanıklığı ayarlıyorum. [Fuzzinees] (https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html#fuzziness) 0..2, 3..5,> 5 olabilir, ancak evet, Katılıyorum, "OTOMATİK" önerilir. Evet, belgeyi bu şekilde bulabilirim, ancak yine de, "bu başlık indeks" için "nde" terimi verildiğinde aynı belgeyi bulmanın tek yolu gibi görünüyor. "query_string": { "default_field": "title", "query": "indexa ~" } –

+0

Buradaki belgeler biraz kafa karıştırıcı: '0..2',' 3..5' ve '> 5' aslında yalnızca AUTO’nun farklı davrandığı farklı durumların açıklamaları. Dize alanları için geçerli olan tek değerler "0", "1", "2" ve "AUTO" dır. – Avish