2012-02-10 7 views
6

Używam PHP do pobierania zapytań użytkownika i uruchamiania ich przez SOLR w określonym polu "keyword", które zawiera w zasadzie połączenie wszystkich danych w dokumencie.DisMax do analizy kwerend użytkownika i q lub fq do filtrowania wyników

Używam również aspektów w tym zapytaniu, aby dalej drążyć zestaw wyników.

Moje pytania:

  1. powinienem używać SOLR DisMax do analizowania WSZYSTKIE zapytanie użytkownika?
  2. Czy uważa się za niewłaściwą praktykę umieszczanie wyszukiwania z zagłębieniami szczegółowymi bezpośrednio w standardowym zapytaniu ze słowem kluczowym search LUB czy powinienem używać filtrów filtrujących standardu w celu filtrowania oryginalnego standardowego zapytania i jego zestawu wyników?

Odpowiedz

3

Używałbym eDisMax, jest w zasadzie bardziej wydajny i bardziej tolerancyjny (to znaczy, że zwykle nie zwraca błędów w przypadku nieprawidłowo wygenerowanych zapytań).

bym zalecamy użycie filter queries filtrować wyniki (fq parametrów) klikanie na przykład na wejściu facet, głównie z tych powodów:

  • zapytania filtry nie wpływają na solr zdobyć
  • zapytania filtry są szybsze od pamięci podręcznej niezależnie od głównego zapytania poprzez filter cache
2

wybór parsera zapytań zależy od zapotrzebowania. Should_I_use_the_standard_or_dismax_Query_Parser

Dismax/Edismax pozwala na zapytanie i zwiększenie liczby pól, ale ma pewne ograniczenia w obsłudze operatorów i ich obsłudze.
W przypadku kwerendy w jednym polu, Standardowy analizator zapytań może spełnić wymagania.

Jak wspomniano przez @javanna Powinieneś zawsze próbować używać zapytań filtrowych w stosunku do wyszukiwania słów kluczowych, ponieważ pozwala to na filtering with cache support.

Powiązane problemy