Текст, который я анализирую в Elasticsearch-6, содержит несколько чисел, которые меня не интересуют, но я не могу понять, как их удалить.Спасибо, мой поиск токенов вернет почтовые индексы или времена или годы.Есть несколько достаточно разных лет, чтобы я мог добавить их к стоп-словам, возможно.Но есть слишком много других, чтобы отфильтровать их таким образом.
Я попытался написать собственный фильтр:
"char_filter": {
"number_filter": {
"type": "pattern_replace",
"pattern": "\\d+",
"replacement": " "
}
Но когда я попытался добавить его в настройках, я получилследующая ошибка:
Не удалось получить группу настроек для префикса настройки [index.analysis.analyzer.] и настройки [index.analysis.analyzer.char_filter] из-за отсутствия '.'
Вот вся часть настроек моей конфигурации (примечание: она работала до того, как я добавил заменяющее число):
"settings": {
"analysis": {
"analyzer": {
"t_analyzer": {
"tokenizer": "t_tokenizer"
},
"major_words_analyzer": {
"type": "standard",
"stopwords": "_english_"
},
"char_filter": [
"number_filter"
]
},
"tokenizer": {
"t_tokenizer": {
"type": "standard"
}
},
"char_filter": {
"number_filter": {
"type": "pattern_replace",
"pattern": "\\d+",
"replacement": " "
}
}
}
}
РЕДАКТИРОВАТЬ: Вот соответствующая настройка поля:
},
"narrative": {
"type": "text",
"store": "true",
"analyzer": "t_analyzer",
"fielddata": "true",
"fields": {
"raw": {
"type": "text"
}
}
},
"narrativePhrases": {
"type": "text",
"analyzer": "major_words_analyzer",
"fielddata": "true",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
РЕДАКТИРОВАТЬ: то, что я делаю потом, это:
POST /test_narrative/_search?size=0
{
"aggs": {
"incidents_by_month":{
"date_histogram":{
"field":"eventDate",
"interval":"month",
"min_doc_count" : 5
},
"aggs":{
"top_phrases":{
"significant_text": {
"field": "narrative",
"size": 10
}
}
}
}
}
}
И у меня все еще есть числа в возвращаемых значениях:
{
"key": "personally",
"doc_count": 3,
"score": 5.22625236294896,
"bg_count": 36
},
{
"key": "2011",
"doc_count": 4,
"score": 2.4786045712321703,
"bg_count": 132
}