备注:name3 默认分词没有使用ik分词器
插入数据
PUT /niuniu/niuniu/niu03
{
"id":"003",
"name3":["中国","日本","英国","美国"]
}
PUT /niuniu/niuniu/niu04
{
"id":"004",
"name3":["中国","英国","美国"]
}
PUT /niuniu/niuniu/niu05
{
"id":"005",
"name3":["英国","美国"]
}
PUT /niuniu/niuniu/niu06
{
"id":"006",
"name3":["中国","英国"]
}
PUT /niuniu/niuniu/niu08
{
"id":"008",
"name3":["日本"]
}
1. 中间空格隔开 or的关系
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "(中国) (日本)",
"fields": ["name3"]
}
}
}
3.使用keyword 只要任意一个匹配到就会返回,不会按照匹配多个值总分排序
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "(中国) (日本)",
"fields": ["name3.keyword"]
}
}
}
4.??????根据keyword查询时候比较奇怪的问题
4.1 单个查询可以查询到结果
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "中国",
"fields": ["name3.keyword"]
}
}
}
4.2 多个查询无结果返回
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "中国 日本",
"fields": ["name3.keyword"]
}
}
}
加括号或者加上*号 有结果返回
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "中国 日本*",
"fields": ["name3.keyword"]
}
}
}
GET /niuniu/_search
{
"query": {
"query_string": {
"query": "(中国) (日本)",
"fields": ["name3.keyword"]
}
}
}