分词搜索 SingleWord分词器,
比如 记录 “”中华人民共和国“” , 然后我用 “”中华人民和美国“”能找出来,
有什么方法能要求 所有分词(美国没匹配)都有的情况才出来吗?或者 怎么能拿到分词后的结果,我一个个拼起来?
问题一:要实现所有分词都有的情况才出来,可以使用Elasticsearch的bool查询结合must和match_phrase。首先,使用match_phrase查询确保所有分词都匹配,然后使用bool查询的must子句将这些条件组合起来。例如:
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"content": {
"query": "中华人民",
"slop": 0,
"max_expansions": 500,
"rewrite": "constant_score"
}
}
},
{
"match_phrase": {
"content": {
"query": "美国",
"slop": 0,
"max_expansions": 500,
"rewrite": "constant_score"
}
}
}
]
}
}
}
问题二:要获取分词结果,可以使用Elasticsearch的_analyze API。例如,针对字段名为text的索引列,可以执行以下请求来获取分词结果:
curl -XGET 'http://localhost:9200/index_name/_analyze?analyzer=standard&text=Xiaomi/小米redmi note 7 pro 红米索尼4800万智能手机'
这将返回一个包含分词结果的数组。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。