2014-04-24 13 views
13

Chcę obliczyć podobieństwo między dwoma dokumentami indeksowanymi w elastycznym wyszukiwaniu. Wiem, że można to zrobić w lucenie za pomocą wektorów termicznych. Jaki jest bezpośredni sposób na zrobienie tego?Podobieństwo dokumentu w ElasticSearch

znalazłem, że istnieje podobieństwo moduł robi dokładnie to: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-similarity.html

jaki sposób zintegrować to w moim systemie? Używam pyelasticsearch do wywoływania poleceń elasticsearch, ale jestem otwarty na używanie interfejsu API REST pod kątem podobieństwa w razie potrzeby.

+0

Mam nadzieję, że moja odpowiedź pomogła, daj mi jakieś pytania. –

+0

@ Michaelatqbox.io Odpowiedź nie rozwiązała problemu, z którym się spotykam. Zarówno zapytanie MLT, jak i MLT api, pomagają wyszukiwać "zamknięte" dokumenty. Chcę zmierzyć bliskość między dwoma dokumentami. Należy zauważyć, że pierwszy problem jest trudniejszy, ale nie mam sposobu na rozwiązanie drugiego problemu. Nie mogę się doczekać twojej odpowiedzi. Problem jest również napisany tutaj: http://grokbase.com/t/gg/elasticsearch/131b9aa8xg/term-vectors- for-computing-document-similarity –

+0

Javanna ma świetny post o różnicy między zapytaniem MLT a MLT API . Powinno to pomóc w wyjaśnieniu różnic i dostarczyć więcej informacji na temat ich działania. http://stackoverflow.com/a/15320512/3075507 –

Odpowiedz

5

Uważam, że dokumentacja Elasticsearch może być łatwo błędnie zinterpretowana.

Tutaj "podobieństwo" nie jest porównaniem dokumentów lub pól, ale raczej mechanizmem porównywania dokumentów na podstawie pasujących terminów z zapytania.

Państwa dokumentacja:

A similarity (scoring/ranking model) defines how matching documents are scored.

Algorytmy podobieństwo że Elasticsearch podpory są probabilistyczne modele oparte na dystrybucji określony w korpusie (indeks).

Jeśli chodzi o wektory terminowe, może to również zostać źle zinterpretowane.

Tutaj "wektory terminów" odnoszą się do statystyk dotyczących warunków dokumentu, które można łatwo sprawdzić. Wydaje się, że wszystkie pomiary podobieństwa między wektorami termicznymi musiałyby zostać wykonane w zapytaniu po aplikacji. Dokumentacja terminu wektory stanu:

Returns information and statistics on terms in the fields of a particular document.

Jeśli potrzebują wydajnych (szybko) podobieństwo metryczną na bardzo dużym korpusie warto rozważyć osadzanie niskiej rangi swoich dokumentów przechowywanych w indeksie za przybliżone wyszukiwanie w pobliżu sąsiada. Po wyszukiwaniu KNN, które znacznie zmniejsza zestaw kandydatów, możesz wykonać bardziej kosztowne obliczenia metryczne do rankingu.

Tutaj jest doskonałym źródłem informacji dla oceny przybliżonych rozwiązań KNN: https://github.com/erikbern/ann-benchmarks

Powiązane problemy