Я хочу получить самый распространенный термин из числа примененных строчных букв.
---- Ниже приведены вещи, которые я пробовал.----
создать индекс
Создать маркер пробела и строчный маркер пробела.
put stacktest
{
"settings": {
"analysis": {
"analyzer": {
"lower_whitespace": {
"filter": ["lowercase"],
"tokenizer": "whitespace"
}
}
}
},
"mappings": {
"doc": {
"properties": {
"txt": {
"type": "text",
"analyzer": "lower_whitespace",
"fielddata": true,
"fields": {
"raw": {
"type": "text",
"analyzer": "whitespace",
"fielddata": true
}
}
}
}
}
}
}
входные данные
Вставить 4 данных.
post stacktest/doc
{
"txt": "aws dak"
}
post stacktest/doc
{
"txt": "aWs dAk"
}
post stacktest/doc
{
"txt": "aWs dAk"
}
post stacktest/doc
{
"txt": "AWS DAK"
}
получить аггс (lowercase_term -> rawterm) Попытка получить агрегацию.
get stacktest/_search
{
"size": 0,
"aggs": {
"countterms": {
"terms": {
"field": "txt",
"size": 10
},
"aggs": {
"countrawterms": {
"terms": {
"field": "txt.raw",
"size": 1
}
}
}
}
}
}
результат
{
.....
"aggregations": {
"countterms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "aws",
"doc_count": 4,
"countrawterms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 4,
"buckets": [
{
"key": "aWs",
"doc_count": 2
}
]
}
},
{
"key": "dak",
"doc_count": 4,
"countrawterms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 4,
"buckets": [
{
"key": "aWs",
"doc_count": 2
}
]
}
}
]
}
}
}
Результаты показаны ниже.Как я могу получить желаемые результаты?
Я хочу получить "aWs" и "dAk".
спасибо.