我刚刚开始使用 Elasticsearch,版本 7.5.1。
我想查询以特定单词片段开头的结果。例如tho * 应该返回包含以下内容的数据:
思想,汤姆森,那些,等等。
我试过 -
- 正则表达式
[{'regexp':{'f1':'tho.*'}},{'regexp':{'f2':'tho.*'}}]
- 通配符
[{'wildcard':{'f1':'tho*'}},{'wildcard':{'f2':'tho*'}}]
- 字首
[{'prefix':{'f1':'tho'}},{'prefix':{'f2':'tho'}}]
- 匹配短语
'multi_match': {'query': 'tho', 'fields':[f1,f2,f3], 'type':phrase}
# also tried with type phrase_prefix
所有这些都返回正确的结果,但它们也都返回单词method。
同样cat * 正在返回单词communication。
我做错了什么?这与分析器有关吗?
- 编辑-这是字段映射-
'f1': {
'full_name': 'f1',
'mapping': {
'f1': {
'type': 'text',
'analyzer': 'some_analyzer',
'index_phrases': true
}
}
},