博客
关于我
Elasticsearch 多种搜索方式
阅读量:257 次
发布时间:2019-03-01

本文共 1207 字,大约阅读时间需要 4 分钟。

1、Query String Search

通过URL查询参数构建简单的搜索语句,适用于基础的文本搜索。

示例:GET /ecommerce/product/_search?q=name:yagao&sort=price:desc

效果:返回包含"yagao"的商品名称,并按价格降序排列。

响应示例:

took: 288ms

timed_out: false

_shards: { total: 5, successful: 5, skipped: 0, failed: 0 }

hits: { total: 3, max_score: 1, hits: [ { _id: "2", _score: 1, _source: { name: "jiajieshiyagao", ... } } ] }

2、Query DSL

使用JSON格式构建更复杂的查询语句,支持多种高级搜索功能。

基本结构:

GET /ecommerce/product/_search{ "query": { match_all: {} }, "sort": [ { price: "desc" } ] }

高级用法:

GET /ecommerce/product/_search{ "query": { bool: { must: { match: { name: "yagao" } }, filter: { range: { price: { gt: 25 } } } }, "sort": [ { price: "desc" } ] }

3、Query Filter

对结果进行过滤,满足特定条件的查询。

示例:

GET /ecommerce/product/_search{ "query": { bool: { must: { match: { name: "yagao" } }, filter: { range: { price: { gt: 25 } } } }, "sort": [ { price: "desc" } ] }

4、Full-Text Search

支持全文检索,通过倒排索引快速定位相关内容。

示例:

GET /ecommerce/product/_search{ "query": { match: { producer: "yagao producer" } } }

5、Phrase Search

精确匹配短语,确保搜索词完整出现。

与全文检索的区别:

全文检索会拆分查询词,匹配任意字符;短语搜索要求完整匹配。

6、Highlight Search

在搜索结果中高亮显示匹配的关键词或短语。

示例:

GET /ecommerce/product/_search{ "query": { match: { name: "yagao" } }, "highlight": [ "name" ] }

转载地址:http://mvft.baihongyu.com/

你可能感兴趣的文章
PHP $_FILES函数详解
查看>>
PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
查看>>
php & 和 & (主要是url 问题)
查看>>
php -- 魔术方法 之 判断属性是否存在或为空:__isset()
查看>>
php -- 魔术方法 之 获取属性:__get()
查看>>
php -树-二叉树的实现
查看>>
PHP -算法-二路归并
查看>>
php 2条不一样 的json数据 怎么放在一个json里面_如果你是PHP开发者,请务必了解一下Composer...
查看>>
php 360 不记住密码,JavaScript_多种方法实现360浏览器下禁止自动填写用户名密码,目前开发一个项目遇到一个很 - phpStudy...
查看>>