2012-09-16 18 views
9

W polu zapytania wpisuję długość pliku fuzzy_prefix, ale wyszukiwanie słowa "tes" nie powoduje wstawiania postów zatytułowanych "test" ... żadnych pomysłów, co robię źle?Elastic search fuzziness in query_string

to moja konfiguracja kwerendy ciąg

"query" : { 
    "query_string" : { 
    "query" : the-query-string-goes-here, 
    "default_operator" : "AND", 
    "fuzzy_prefix_length" : 3, 
    } 
} 

Odpowiedz

13

Jesteś, prawdopodobnie brakuje „rozmyta” operator na końcu zapytania. Wypróbuj to:

"query" : { 
    "query_string" : { 
    "query" : "tes~", 
    "default_operator" : "AND", 
    "fuzzy_prefix_length" : 3, 
    } 
} 
+0

Ahh Widzę ... kilka pytań, jeśli nie masz nic przeciwko ... Słyszałem, że zapytania z użyciem symboli wieloznacznych są wolniejsze niż średnie i nie są skalowane. Wszelkie podobne obawy dotyczące tego operatora? Ponadto, teraz szukanie "tes" spowoduje wyświetlenie postu zatytułowanego "test", ale wyszukiwanie "est" nie będzie ... czy jest sposób, aby to zrobić ... czy też jestem zbyt daleko idący? – concept47

+1

"est" nie zwraca żadnych wyników, ponieważ podano niezerową długość pliku fuzzy_prefix. Długość fuzzy_prefix_length określa liczbę znaków na początku terminu, które muszą być zgodne. Zero fuzzy_prefix_length wymagałoby elastycznego wyszukiwania do rozmytego dopasowania wszystkich terminów w słowniku do terminu w zapytaniu. Określając niezerową wartość fuzzy_prefix_length, można znacznie ograniczyć liczbę terminów do sprawdzenia i poprawić wydajność. Jak wspomniałeś, jest to trochę podobne do zapytań w dzikiej karcie, z tym że algorytm dopasowywania terminów jest bardziej wyrafinowany w przypadku operatora rozmytego. – imotov

Powiązane problemy