To, czego szukam, to proste, jasne wyjaśnienie, jak naprawdę działa domyślny mechanizm scoringowy ElasticSearch (Lucene). Chodzi mi o to, czy używa on punktacji Lucene, czy może używa własnej punktacji?Domyślny mechanizm oceniania ElasticSearch
Na przykład chcę wyszukać dokument na przykład za pomocą pola "Nazwa". Korzystam z klienta .NET NEST, aby pisać moje zapytania. Rozważmy ten typ zapytania:
IQueryResponse<SomeEntity> queryResult = client.Search<SomeEntity>(s =>
s.From(0)
.Size(300)
.Explain()
.Query(q => q.Match(a => a.OnField(q.Resolve(f => f.Name)).QueryString("ExampleName")))
);
który jest tłumaczony na takie zapytania JSON:
{
"from": 0,
"size": 300,
"explain": true,
"query": {
"match": {
"Name": {
"query": "ExampleName"
}
}
}
}
jest około 1,1 mln dokumentów, że wyszukiwanie jest wykonywane na. Co dostanę w zamian, to (to tylko część wyniku, sformatowany na własną rękę):
650 "ExampleName" 7,313398
651 "ExampleName" 7,313398
652 "ExampleName" 7,313398
653 "ExampleName" 7,239194
654 "ExampleName" 7,239194
860 "ExampleName of Something" 4,5708737
gdzie pierwsze pole jest tylko Id, drugi to nazwa pola, na których ElasticSearch przeprowadzić to wyszukiwanie, a trzeci jest wynikiem.
Jak widać, istnieje wiele duplikatów w indeksie ES. Ponieważ niektóre z odnalezionych dokumentów mają różne wyniki, pomimo tego, że są dokładnie takie same (z tylko różnym Id), doszedłem do wniosku, że różne odłamki wykonano przeszukując różne części całego zestawu danych, co prowadzi mnie do prześledzenia, że wynik jest w pewnym stopniu oparty na ogólnej ocenie. dane w danym fragmencie, nie wyłącznie na dokumencie, który jest faktycznie brany pod uwagę przez wyszukiwarkę.
Pytanie brzmi, jak dokładnie działa ta punktacja? Czy możesz mi powiedzieć/pokazać/wskazać mi dokładną formułę obliczania wyniku dla każdego dokumentu znalezionego przez ES? I w końcu, w jaki sposób można zmienić ten mechanizm punktowania?
OK, to prawie obejmuje to, co chciałem wiedzieć. Informacja, że ES wykorzystuje wyłącznie podobieństwo Lucene jest bardzo pomocna. Dzięki! –
Więcej szczegółów na temat czynników w algorytmie punktacji Lucene: http://www.lucenetutorial.com/advanced-topics/scoring.html – ThoQ