Pracuję nad projektem, w którym intensywnie korzystam z Elasticsearch i wykorzystuję zapytanie moreLikeThis do implementacji niektórych funkcji. Oficjalna dokumentacja dla zapytania MLT stwierdza co następuje:Elasticsearch: Jak przechowywać wektory terminowe
W celu przyspieszenia analizy, może to przyczynić się do przechowywania utrzymujące wektorów w czasie indeksu, ale kosztem wykorzystania dysku.
W sekcji ** Jak to działa *. Pomysł polega teraz na dostrojeniu mapowania, więc przechowuj wcześniej wyliczone wektory terminów. Problem polega na tym, że wydaje się niejasne z dokumentacji, jak dokładnie należy to zrobić. Z jednej strony, w dokumentacji MLT, dostarczają i przykład odwzorowania, która wygląda następująco:
curl -s -XPUT 'http://localhost:9200/imdb/' -d '{
"mappings": {
"movies": {
"properties": {
"title": {
"type": "string",
"term_vector": "yes"
},
"description": {
"type": "string"
},
"tags": {
"type": "string",
"fields" : {
"raw": {
"type" : "string",
"index" : "not_analyzed",
"term_vector" : "yes"
}
}
}
}
}
}
}
Z drugiej strony, w Term Vectors documentation, zapewniają odwzorowanie w Przykładu 1 sekcji, która wygląda następująco
curl -s -XPUT 'http://localhost:9200/twitter/' -d '{
"mappings": {
"tweet": {
"properties": {
"text": {
"type": "string",
"term_vector": "with_positions_offsets_payloads",
"store" : true,
"index_analyzer" : "fulltext_analyzer"
},
"fullname": {
"type": "string",
"term_vector": "with_positions_offsets_payloads",
"index_analyzer" : "fulltext_analyzer"
}
}
}
....
powinno create an index that stores term vectors, payloads etc.
teraz pytanie brzmi: które z mapowania powinny być stosowane? Czy jest to usterka w dokumentacji, czy coś mi brakuje?
Drugi przykład tylko przechowywać dodatkowe informacje jak well.i Chyba powinno być dla ciebie za mało, wystarczy użyć „tak” – Mysterion
ale jest to rodzaj zachowania someho gdzieś dokumentowałem?jak to "tak" robi coś, a "with_positions_offsets_payloads" robi więcej? –