Mam zestaw 2,8 miliona dokumentów z zestawami znaczników, które wyszukuję za pomocą ElasticSearch, ale wiele z tych dokumentów można zgrupować według jednego identyfikatora. Chcę przesyłać zapytania do moich danych przy użyciu tagów, a następnie agregować je według identyfikatora, który się powtarza. Często moje wyniki wyszukiwania zawierają dziesiątki tysięcy dokumentów, ale chcę tylko zebrać 100 najlepszych wyników wyszukiwania. Jak mogę ograniczyć agregację do tylko 100 najlepszych wyników z zapytania? Można ustawić wartość parametruLimit agregacji ElasticSearch do najlepszych wyników w zapytaniach n
Odpowiedz
w celu zdefiniowania liczby zawinięć terminów z ogólnej listy warunków.
Domyślnie węzeł koordynujący proces wyszukiwania zażąda od każdego odłamka dostarczenia własnego segmentu o maksymalnym rozmiarze, a gdy wszystkie odłamki odpowiedzą, zmniejszy wyniki do ostatecznej listy, która następnie zostanie zwrócona do klienta. Oznacza to, że jeśli liczba unikatowych terminów jest większa niż rozmiar, zwrócona lista jest nieznacznie wyłączona i nie jest dokładna (może się zdarzyć, że termin liczy się w niewielkim stopniu i może to być nawet termin, który powinien znajdować się w najwyższym rozmiarze wiadra nie zwrócono).
Jeśli ustawione na 0, rozmiar zostanie ustawiony na Integer.MAX_VALUE
.
Oto przykładowy kod, aby powrócić TOP 100:
{
"aggs" : {
"products" : {
"terms" : {
"field" : "product",
"size" : 100
}
}
}
}
Można odwołać się do this aby uzyskać więcej informacji.
To nie odpowiada na pytanie OP. Wymagane jest agregowanie na podstawie najlepszych wyników zapytania n z zapytania wyszukiwania. Parametr 'size' określa tylko liczbę zwróconych znaczników agregacji. Zakres nadal obejmuje wszystkie dokumenty pasujące do kryteriów zapytania. – bittusarkar
Dzięki, ale dokładnie to, co @barkar powiedział. –
Można użyć parametru min_doc_count
{
"aggs" : {
"products" : {
"terms" : {
"field" : "product",
"min_doc_count" : 100
}
}
}
}
To nie odpowiada na pytanie OP. Zwróci wiaderka, które mają 100 wpisów aleastów, ale nie są ograniczone do 100 najlepszych wyników. – Rahul
filtrowanie agregację wykorzystywane w celu ograniczenia przetwarzania dowolnej agregacji Sub do próbki dokumentów najwyższej punktacji.
"aggs": {
"bestDocs": {
"sampler": {
// "field": "<FIELD>", <-- optional, Controls diversity using a field
"shard_size":100
},
"aggs": {
"bestBuckets": {
"terms": {
"field": "id"
}
}
}
}
}
To zapytanie ograniczy agregację sub do Top 100 dokumenty z wyniku, a następnie wiadro ich ID.
Opcjonalnie można użyć ustawień field or script and max_docs_per_value
w celu kontrolowania maksymalnej liczby dokumentów zebranych na dowolnym fragmencie, który ma wspólną wartość.
Czy to nie próbka agregacji dokładnie to, czego szuka OP? –
Dzięki, zaktualizowałem odpowiedź :) – Rahul
- 1. Dołączenie agregacji reverse_nested w Elasticsearch
- 2. Jak włączyć nieostrość w zapytaniach do fraz w ElasticSearch
- 3. ElasticSearch - jak wykluczyć filtr z agregacji?
- 4. Elasticsearch porządek agregacji według najwyższego wyniku trafienia
- 5. Elasticsearch: jak zakres agregacji do zapytania i filtrowania?
- 6. limit wyników każdego w pliku handlebars.js
- 7. Jak zwrócić tylko statystyki agregacji w zapytaniu ElasticSearch?
- 8. siana i Elasticsearch: Ogranicz liczbę wyników
- 9. elasticsearch uzyskując zbyt wiele wyników, potrzebuję filtrowania zapytań pomocowych
- 10. Klient ElasticSearch NEST nie zwraca wyników
- 11. Pandy: Zwiń pierwsze n wierszy w każdej grupie według agregacji.
- 12. Zapytanie SQLAlchemy, aby zwrócić tylko n wyników?
- 13. Najprostszym sposobem na stworzenie serwera do przechowywania listy najlepszych wyników w grze javascript?
- 14. Dwukierunkowe relacje w zapytaniach SQL
- 15. Wyrażenia regularne w zapytaniach SQLalchemy?
- 16. Jak zamknąć tabelę wyników w Redis tylko dla N elementów?
- 17. HQL: używanie Boolean w nazwanych zapytaniach
- 18. Jak niezawodny jest "porządek" w zapytaniach NodeLists
- 19. Generowanie generowania agregacji Maven
- 20. ElasticSearch: Równoważny operator w ElasticSearch
- 21. Oracle SELECT rekord 10 najlepszych
- 22. Dobry projekt Swing do nauki najlepszych praktyk
- 23. Scala ciąg wzorców pasujących do najlepszych praktyk
- 24. Elasticsearch SQL agregacja podkwerendy
- 25. Agregacje filtrów Elasticsearch przy minimalnej liczbie dokumentów
- 26. Jak dodać zajęcia do najlepszych linków?
- 27. Dodawanie serii do najlepszych z JSON
- 28. Python ciąg do listy najlepszych praktyk
- 29. Zasada najlepszych zasad
- 30. Powrót wyjątkowe rezultaty w elasticsearch
Czy masz przykład zapytania i agregacji? –
Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? – anubina