W realizacji elasticsearch, mam kilka prostych agregacji na podstawie kilku dziedzinach, jak pokazano poniżej -elastyczne wyszukiwanie - Agregacja zwraca hasła w kluczu, ale nie w pełnym polu, jak mogę uzyskać pełne pole zwrócone?
"aggs" : {
"author" : {
"terms" : { "field" : "author"
, "size": 20,
"order" : { "_term" : "asc" }
}
},
"title" : {
"terms" : { "field" : "title"
, "size": 20
}
},
"contentType" : {
"terms" : { "field" : "docType"
, "size": 20
}
}
}
agregacji działać dobrze i uzyskać wyniki odpowiednio. ale zwrócone pole klucza tytułu (lub dowolne inne pole - wiele słów) ma agregację pojedynczego słowa i wyniki. Potrzebuję pełnego tytułu w zwracanym wyniku, a nie tylko słowa - które nie ma większego sensu. jak mogę to zdobyć.
Aktualne wyniki (tylko fragment) -
"title": {
"buckets": [
{
"key": "test",
"doc_count": 1716
},
{
"key": "pptx",
"doc_count": 1247
},
{
"key": "and",
"doc_count": 661
},
{
"key": "for",
"doc_count": 489
},
{
"key": "mobile",
"doc_count": 487
},
{
"key": "docx",
"doc_count": 486
},
{
"key": "pdf",
"doc_count": 450
},
{
"key": "2012",
"doc_count": 397
} ] }
oczekiwane rezultaty -
"title": {
"buckets": [
{
"key": "test document for stack overflow ",
"doc_count": 1716
},
{
"key": "this is a pptx",
"doc_count": 1247
},
{
"key": "its another document and so on",
"doc_count": 661
},
{
"key": "for",
"doc_count": 489
},
{
"key": "mobile",
"doc_count": 487
},
{
"key": "docx",
"doc_count": 486
},
{
"key": "pdf",
"doc_count": 450
},
{
"key": "2012",
"doc_count": 397
} }
Przeszedłem przez wiele dokumentacji, wyjaśnia różne sposoby do agregacji wyników, ale nie mogłem dowiedzieć się, jak uzyskać pełny tekst, jeśli pole w kluczu w wyniku, proszę doradzić, w jaki sposób mogę to osiągnąć?
dziękuję bardzo Dan !! Spróbuję tego, wygląda bardzo obiecująco! – dev123
Co powiesz na pytanie o pole, które muszę mieć tokenizowane dla zapytania wyszukiwania, ale jednocześnie niezestrializowane dla agregacji? – ulkas
Powyższe odwzorowanie to powoduje, że indeksuje pole przy użyciu domyślnego analizatora (analizator standardowy) i indeksuje nieznikcjonowaną wersję pola. Na przykład dla wyszukiwania użyj nazwy pola 'title' (tokenized), w przypadku agregacji użyj nazwy pola' title.untouched' (untokenized). –