elasticsearch - Elasticsearch 同义词 - 如何确定优先级?
问题描述
假设我有一个同义词文件,其中只有下面的两个同义词行
ft , synonym_1
10 ft , synonym_2
当我在分析仪中使用这个文件并分析“10 ft”这个词时,我得到以下信息:
{
"tokens": [
{
"token": "10"
},
{
"token": "ft"
},
{
"token": "synonym_2",
}
]
}
synonym_1 没有出现,即使“ft”在分析的文本中匹配了一个标记。这是因为单个标记和短语的某些优先级吗?“10 ft”是否匹配更多的分析文本,因此它是唯一生效的同义词?有没有办法让第一个同义词在这种情况下起作用?
注意:我正在使用空格标记器并分析文本“30 ft”给了我 synonym_1。只有当“10 ft”恰好出现时,第一个同义词才被打破。
"simplified_analyzer": {
"filter": [
"lowercase",
"stemmer",
"synonyms",
"edge_ngrams",
"remove_duplicates"
],
"char_filter" => ["remove_html", "remove_non_alphanumeric"],
"tokenizer" => "whitespace"
}
我是否必须使用第二个同义词过滤器来处理单个单词?
解决方案
推荐阅读
- html - Live Server 扩展不会使用 WSL2 自动重新加载
- java - 在特定条件下保存对象的 HashMap 值时出错
- excel - 如何使用地址获取范围内的值
- datetime - 您将如何计算 DATE_TIME 对象在埃菲尔的纪元以来的秒数
- html - Xpath没有得到任何数据
- parameters - SAS:为宏程序的参数输入特定值
- python - 将列表分成两部分,尽可能等于总和
- pygame - 我在让 pygame 工作时遇到问题,因为我不明白如何分配路径
- html - 如何仅填充段落的底部?
- docker - AWS (ECS) 上的 keycloak 集群 - 任务无法通信