本文共 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/