Я хотел бы рассчитать каждый проанализированный токен.Как получить анализируемое количество слов по Elasticsearch?
Во-первых, я попытался следующие коды:
отображение:
{
"docs": {
"mappings": {
"doc": {
"dynamic": "false",
"properties": {
"text": {
"type": "string",
"analyzer": "kuromoji"
}
}
}
}
}
}
запрос:
{
"query": {
"match_all": {}
},
"aggs": {
"word-count": {
"terms": {
"field": "text",
"size": "1000"
}
}
},
"size": 0
}
переспросила я мой индекс после вставки мои данные, я получил следующий результат:
{
"took": 41
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 10000,
"max_score": 0,
"hits": []
},
"aggregations": {
"word-count": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 36634,
"buckets": [
{
"key": "はい",
"doc_count": 4734
},
{
"key": "いただく",
"doc_count": 2440
},
...
]
}
}
}
К сожалению, агрегирование сроков предоставляет только doc_count. Это не слово. Итак, я думаю, что способ получить приблизительный подсчет слов, используя _index['text']['TERM'].df()
и _index['text']['TERM'].ttf()
.
Может быть приближенное количество слов является следующее уравнение:
WordCount = doc_count['TERM']/_index['text']['TERM'].df() * _index['text']['TERM'].ttf()
'TERM' является ключевым в ведрах. Я попытался написать агрегирование с использованием сценариев, но я не знал, как получить ключи в ведрах.
{
"query": {
"match_all": {}
},
"aggs": {
"doc-count": {
"terms": {
"field": "text",
"size": "1000"
}
},
"aggs": {
"word-count": {
"scripted_metric": {
// ???
}
}
}
},
"size": 0
}
Как я могу получить ключи в ведрах? Если это невозможно, как я могу получить анализируемое количество слов?
Спасибо! Я попытался подсчитать количество, но это не подходит для моего дела. Количество токенов подсчитывает токены каждого документа, но я хочу подсчитать один и тот же токен в целых документах. Например, текст «だ か ら で す ね» засчитывается в 3 жетона. Но я хочу получить «だ か ら», «で す», а «ね» подсчитывает каждый 1 токен и агрегирует токены в целых документах, чтобы получить каждый токен. –