最近在工作中需要对ES新增一个在java中属于List的es字段,搜索这块需要去处理精准和模糊匹配的问题

存储

POST t_bbs_posts_test/t_bbs_posts/5
{
    "array":["a","b","c"]
}

看一下mapping信息

"array": {
"type": "text",
"fields": {
		"keyword": {
    	"type": "keyword",
    	"ignore_above": 256
	}
}

搜索

match_phrasematch类似,都是进行分词查询的;

模糊搜索

GET t_bbs_posts_test/_search
{
    "query":{
        "match":{
            "array":"a"
        }
    }
}

模糊搜索

条件中出现的单词必须全部存在,并且要按照顺序出现,否则就无法匹配

GET t_bbs_posts_test/_search
{
    "query":{
        "match_phrase": {
            "array":"a"
        }
    }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐