2013-06-09 16 views
15

Chciałbym wprowadzić relevance feedback w Solr. Solr ma już funkcję More Like This: Biorąc pod uwagę pojedynczy dokument , zwróć zestaw podobnych dokumentów uszeregowanych według podobieństwa do pojedynczego dokumentu wejściowego. Czy możliwa jest konfiguracja funkcji podobnej do tej Solr, aby zachowywać się jak bardziej podobna do Którzy? Innymi słowy: Biorąc pod uwagę zestaw dokumentów, zwróć listę dokumentów podobnych do zestawu wejściowego (uporządkowanych według podobieństwa).Informacja o istotności w Apache Solr

Zgodnie z odpowiedzią na this question toczenia Solr nic więcej jak to w bardziej jak te można wykonać w następujący sposób:

  1. Take url zestawie wyników kwerendy zwrotu określonych dokumentów. Na przykład adres URL http://solrServer:8983/solr/select?q=id:1%20id:2%20id:3 zwraca odpowiedź na zapytania id:1 id:2 id:3 który jest praktycznie połączeniem dokumentami 1, 2, 3.
  2. umieścić powyższy adres URL (powiązanie z wymienionych dokumentów) w parametrze GET url.stream z bardziej Like This obsługujący: http://solrServer:8983/solr/mlt?mlt.fl=text&mlt.mintf=0&stream.url=http://solrServer:8983/solr/select%3Fq=id:1%20id:2%20id:3. Teraz bardziej podobny Ten program obsługi traktuje łączenie dokumentów 1, 2 i 3 jako pojedynczy dokument wejściowy i zwraca zestaw uporządkowanych zestawów dokumentów podobny do konkatenacji.

Jest to bardzo złe wdrożenie: Traktowanie zestawu dokumentów wejściowych, takich jak jeden duży dokument, dyskryminuje krótkie dokumenty, ponieważ krótkie dokumenty zajmują niewielką część całego dużego dokumentu.

Solr bardziej podobny Ta funkcja jest implementowana przez odmianę The Rocchio Algorithm: Zajmuje 20 najlepszych terminów (pojedynczego) dokumentu wejściowego (hasła o najwyższych wartościach TF-IDF) i używa tych terminów jako zmodyfikowanych zapytań, wzmocnione zgodnie z ich TF-IDF. Szukam sposobu na skonfigurowanie podobnej do Solr funkcji, aby wprowadzić wiele dokumentów jako dane wejściowe, wyodrębnić najlepsze n terminów z każdego dokumentu wejściowego i przesłać zapytanie do indeksu z tymi terminami zwiększonymi zgodnie z ich TF-IDF.

Czy można tak skonfigurować More Like This? Jeśli nie, jaki jest najlepszy sposób wdrożenia informacji zwrotnych dotyczących trafności w Solr?

Odpowiedz

2

Niestety, nie można w ten sposób skonfigurować programu obsługi MLT.

Jednym ze sposobów jest wdrożenie niestandardowego SearchComponent i zarejestrowanie go w (dedykowanym) SearchHadler.

Zrobiłem już coś podobnego i jest całkiem proste, jeśli spojrzysz na komponent MLT original implementation.

Najtrudniejszą częścią jest synchronizacja wyników z różnych serwerów odłamków, ale można ją pominąć, jeśli nie używasz odłamków.

Zdecydowanie zaleca się również stosowanie w swoich wdrożeniach własnych parametrów, aby zapobiec kolizjom z innymi komponentami.

Powiązane problemy