身安不如心安,屋宽不如心宽 。

如何做到真正的前缀搜索

Elasticsearch | 作者 JimmyGao | 发布于2022年04月13日 | 阅读数:1162

比如我有3个文档,采用ik_max_word分词
1. 考试专题
2. 测试考试成绩
3. 新动能考试
 
我用prefix 和 match_phrase_prefix 分别 搜索“考试”,这3条doc都能搜出来。但是我实际只想检索出 doc1,就是已“考试”这两个词开始的doc,请问改怎么做
已邀请:

Ombres

赞同来自:

不分词可以

HenwyGoal - 狗头老高,人菜瘾大

赞同来自:

为啥不用keyword+wildcard

Fisher - 鱼仔

赞同来自:

边际分词器试试
edge_ngram

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

PUT test0416
{
"mappings": {
"properties": {
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}


POST test0416/_bulk
{"index":{"_id":1}}
{"title":"考试专题"}
{"index":{"_id":2}}
{"title":"测试考试成绩题"}
{"index":{"_id":3}}
{"title":"新动能考试"}


POST test0416/_search
{
"profile": true,
"query": {
"prefix": {
"title.keyword": {
"value": "考试"
}
}
}
}

要回复问题请先登录注册