【elasticsearch】查询语句的分词过滤和不分词过滤
在对 elasticsearch 进行查询的时候,对于 “is a” 这种的包含默认分隔符的查询条件,查询语句会分为全词查询和分词查询两种情况,不注意的话,很容易得到错误数据;
下面介绍一下适用于各种需要查询语句情况的两个例子;
一、分词查询
使用 match
,查询语句包含默认分隔符,例如空格,就会使用分词来查询结果;
比如:are you
,就会返回包含 are
、you
、are you
的所有结果;
{
"query": {
"bool": {
"should": [
{
"match": {
"data": "are you"
}
}
]
}
}
}
二、全词查询
使用 match_phrase
,就算查询语句包含默认分隔符,例如空格,也会把 整个词语当作一个整体查询;
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"message": "are you"
}
}
]
}
}
}
—2020-07-15—