Mam kilka firmowych danych w bazie danych ES. Próbuję pobrać liczbę dokumentów, z których każdy występuje, ale mam pewne problemy z zapytaniem o agregację. Szukam wykluczenia takich terminów, jak "Korporacja" lub "Inc." Do tej pory udało mi się to zrobić z powodzeniem na jeden semestr naraz, zgodnie z poniższym kodem.Elasticsearch Zapytanie o agregację z wieloma wykluczeniami
{
"aggs" : {
"companies" : {
"terms" : {
"field" : "Companies.name",
"exclude" : "corporation"
}
}
}
}
Które zwraca
"aggregations": {
"assignee": {
"buckets": [
{
"key": "inc",
"doc_count": 375
},
{
"key": "company",
"doc_count": 252
}
]
}
}
Idealnie chciałbym być w stanie zrobić coś takiego
{
"aggs" : {
"companies" : {
"terms" : {
"field" : "Companies.name",
"exclude" : ["corporation", "inc.", "inc", "co", "company", "the", "industries", "incorporated", "international"],
}
}
}
}
Ale nie udało się znaleźć sposób, który nie wrzuć błąd
Zajrzałem do sekcji "Warunki" Agregacji w dokumentacji ES i mogę znaleźć tylko wystarczy jedno wykluczenie. Zastanawiam się, czy można wykluczyć wiele terminów, a jeśli tak, to jaka jest prawidłowa składnia.
Uwaga: Wiem, że mogę ustawić pole na "nie_analizowane" i uzyskać grupy dla pełnych nazw firm zamiast nazw dzielonych. Jednak jestem niezdecydowany zrobić to jako analizy pozwala wiadro być bardziej tolerancyjny odmian nazwisko (tj Microsoft Corp & Microsoft Corporation)
Dla informacji, ten został wdrożony jako ES 1.5. Zobacz ten numer, aby uzyskać więcej informacji: https://github.com/elastic/elasticsearch/issues/11959 –