0. 实验背景
主要测试并(and)查询场景下,query_string、match、term三种可以满足并查询条件的方式以及彼此的差异
1. 数据准备
ES中插入两个doc。doc对应的数据结构,tags keyword; tags0 text;
{
"tags0":["马云","阿里巴巴","支付宝"]
"tags1":"马云 阿里巴巴 支付宝"
}
{
"tags0":[""阿里巴巴","支付宝","马云"]
"tags1":"阿里巴巴 支付宝 马云"
}
1. match and查询场景
查询条件
{"query": {"bool": {"must": [
{"match":{"tag1":{"query":"马云 阿里巴巴","operator":"and"}}}
] } }}
返回结果
{
"tags0":["马云","阿里巴巴","支付宝"]
"tags1":"马云 阿里巴巴 支付宝"
}
2. query_string and查询场景
查询条件
{"query": {"bool"