Używamy elastic4s dla ElasticSearch 2.2.0. Wiele zapytań jest przechowywanych jako JSON na dysku i używane jako rawQuery przez sterownik elastic4s. Wynik w wyniku różni się między zapytaniem przesłanym za pomocą wiersza poleceń lub sterownika elastic4s. Sterownik elastic4s zawsze zwraca wynik równy 1 dla wszystkich wyników, a wykonanie wiersza poleceń daje dwie różne wartości (dla różnych typów danych).elastic4s: wynik pozostaje na poziomie 1 z rawQuery
Kod dla elastic4s:
val searchResult = client.execute {
search in indexName types(product, company, orga, "User", "Workplace") rawQuery preparedQuery sourceInclude(preparedSourceField:_*) sort {sortDefintions:_*} start start limit limit
}.await
Zauważ, że usunąłem wszystko ale rawQuery preparedQuery
i nie zmienić wynik . Pełne zapytanie za pośrednictwem wiersza polecenia jest dość długa:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "${search}",
"fields": [
"name",
"abbreviation",
"articleNumberManufacturer",
"productLine",
"productTitle^10",
"productSubtitle",
"productDescription",
"manufacturerRef.name",
"props"
]
}
}
],
"filter": [
{
"or": [
{
"bool": {
"must": [
{
"type": {
"value": "Product"
}
},
{
"term": {
"publishState": "published"
}
}
],
"must_not": [
{
"term": {
"productType": "MASTER"
}
},
{
"term": {
"deleted": true
}
}
]
}
}
]
}
]
}
}
}
Należy pamiętać, że jest to niemal preparedQuery
ale do zastąpienia $search
z zapytaniem. Klient REST wyszukiwania elastycznego zwraca wynik za zgodność z wynikiem 3.075806.
Kiedy mówisz wynik wynik, jest to wynik per-sprzęcie? Co oznacza "Klient REST elastycznego wyszukiwania zwraca wynik 3.075806 dla dopasowań." oznaczać? – James
Czy uzyskujesz dokładnie takie same wyniki przez sterownik elastic4s i REST? – Val
@James wyszukiwanie elastyczne klient REST oznacza zapytanie wyszukiwanie elastyczne bezpośrednio przez curl. Val wynik jest inny, 1 dla elastic4s i 3.075806 dla zapytania REST curl. – TeTeT