比如我先创建一个文档
下面是 ik分词器的地址
ik分词器
基本步骤就是
yum -y install wget
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.6/elasticsearch-analysis-ik-6.8.6.zip
然后拷贝到 es 的 plugin目录即可
当然,我发现我搞复杂了 直接
bin/elasticsearch-plugin install
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.6/elasticsearch-analysis-ik-6.8.6.zip
看这位大佬的博客
https://www.jianshu.com/p/d8b0c736070f
或者进入 docker 容器内 ,直接 wget然后解压
PUT a/doc/1
{
"school1" :"天津大学",
"school2" :"社会大学",
"area1" :"北京",
"area2":"天津"
}
那么 加入有一个 sql 语句
select * from doc where school1 like ‘%大学%’ and area1 like ‘%北京%’
那么应该用 bool查询 中 的 must 代表 and 连接符号
match 是包含 的意思
and 模糊查询
GET a/doc/_search
{
"query": {"bool": {
"must": [
{
"match": {
"school1": "大学"
}
},
{
"match": {
"area1": "北京"
}
}
]
}}
}
如果要 match 多个条件 呢? sex 是男或者 女 或者 不知道呢 ?
match {
“sex”:"男 女"
}
可以中间用空格或者 逗号隔开,就是或者的 条件了
这种就查的出 area1 在 北京 or 天津 的文档了
布尔查询 的 3种模式:
- must and
- should or
- must_not not