/ / Solr Fuzzy Search Weird Case - solr, lucene, fuzzy-search

Solr Fuzzy Search Weird Case - solr, lucene, fuzzy-search

Wprowadzam wyszukiwanie solr fuzzy przy użyciu złożonego zapytania frazowego. Ale kończę wątek: q={!complexphrase}name:"woo~1 grou~2" powrót "grupa drewna" w rezultacie. q={!complexphrase}name:"woo~1 gro~2" nie powrót "grupa drewna". Althouth odległość między gro i grupy wynosi 2!

wyszukiwanie tego zapytania: q={!complexphrase}name:"Anderso~1 Interes~2" zwraca "Zainteresowania Andersona". Różnica między Interes i Interesami jest taka sama jak w grupie i grupie !!!

jakikolwiek pomysł jaki jest powód?

Odpowiedzi:

2 dla odpowiedzi № 1

Uważam, że napotykasz problem z przepisywaniem zapytań.

Dowolne zapytanie wielowyrazowe (zapytania rozmyte, prefikskwerendy itp.) zostaje rozszerzony, w Lucene, na dokładne warunki, które pasuje. Istnieje maksymalna liczba terminów, które mogą być generowane w ten sposób, więc przy przepisywaniu zapytania, po prostu spróbujesz wybrać najlepsze z tego limitu. Podejrzewam, że jest za dużo meczów gro~2.

Być może uznasz to za dziwne, że jest ich tak wieledopasowuje, że nie może włączyć wszystkich do kwerendy. Wygląda na to, że próbujesz wyszukać słowa rozpoczynające się od gro, i z maksymalnie dwoma literami wstawionymi na koniec. Ile może być? nie jest Czego szukasz? Zapytania rozmyte są oparte na odległości levenshtein. Dopasowania tego terminu obejmują:

  • g__ - Trzyliterowe słowa rozpoczynające się na g
  • _r_ - Trzyliterowe słowa z symbolem r na środku
  • __o - Trzyliterowe słowa z o na końcu
  • gr__ - Dowolne czteroliterowe słowo rozpoczynające się od gr
  • itp.

Krótko mówiąc, może pasować do a masywny lista terminów i pod względem algorytmu podobieństwa, "ramię" i "cron" pasują równie dobrze jak "grupa".


Jeśli ty naprawdę po prostu chcesz dopasować terminy rozpoczynające się od "gro", zamiast tego użyj zapytania prefiksowego: "woo* gro*".

Jeśli chcesz rzeczywiście wyszukiwać z rozmytym zapytaniem, w tym z listą możliwych wyników opisanych powyżej, możesz powiększyć MaxBooleanClauses, w Twoim sekcja zapytania solrconfig.

<query>
<maxBooleanClauses>1024</maxBooleanClauses>