- elasticsearch单个查询
(1)match_all 查询所有文档。在没有指定查询方式时,它是默认的查询。在PHP用法 不能直接用 “{}”
$body = [
"match_all"=> new \stdClass()
];
(2) match 查询精确查询也可以匹配查询也可以,在PHP 中的用法
$body = [
"match"=>[
"shop_content"=>"天气"
]
];
$body = [
"match"=>[
"shop_id"=>"1"
]
];
shop_content 采用的是elasticsearch 默认分词器 standard 则匹配数据规则会把“天气”分开来 只要出现”天“或者 “气”的都匹配出来。采用IK中文分词器ik_max_word 会根据中文语法来分词查询。
shop_id则是精准匹配。
(3)multi_match 多项字段筛选
$body = [
"multi_match"=>[
"query"=> "天天",
"fields"=>[ "shop_name", "shop_content"]
]
];
shop_name或者shop_content 匹配到”天天“
(4)range 查询 = mysql 区间 查询
$body = [
"range"=>[
"shop_id"=>[
"gte"=>3,
"lte"=>20,
]
]
];

本文详细介绍了Elasticsearch的各种查询方式,包括match_all、match、multi_match、range、term与terms查询,以及exists查询。还探讨了如何进行组合查询,使用bool关键字结合must、must_not、should和filter进行复杂条件筛选。此外,还讲解了如何进行排序和分页操作,以满足不同查询需求。
最低0.47元/天 解锁文章
483

被折叠的 条评论
为什么被折叠?



