如何解决弹性搜索:regex匹配完成提示regex中的多个单词字符串
我正在尝试将自动完成功能的输入查询中的最后两个单词与完成建议器进行匹配。由于它是前缀树,因此给出整个查询可能不会产生结果。我正在尝试编写一个与最后两个单词匹配的简单正则表达式,如果不匹配则匹配最后一个单词。
映射:
"sections": {
"type": "text","fields": {
"sections_suggest": {
"type": "completion"
}
}
}
Input query - I want to know could yes
last 2 tokens - could,yes
regex tried -
1. (could )?yes
2. (could\s)?yes
这与这里的句子匹配
但是它与我的搜索查询代码不匹配
body = {
"suggest": {
"section-suggest": {
"regex": "(could )?yes","completion": {
"field": "sections.sections_suggest",}
}
}
}
search_result = self.es.search(index=index_name,body=body)
正则表达式有问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。