es中搜索方式
在Elasticsearch中,搜索可以通过使用Elasticsearch查询DSL(Domain-Specific Language)来实现。以下是一些基本的搜索方式:
- 全文搜索:使用
match
查询。
GET /_search
{
"query": {
"match": {
"message": "elasticsearch"
}
}
}
- 多字段搜索:使用
multi_match
查询。
GET /_search
{
"query": {
"multi_match": {
"query": "elasticsearch",
"fields": ["title", "body"]
}
}
}
- 精确匹配:使用
term
查询。
GET /_search
{
"query": {
"term": {
"tags": "search"
}
}
}
- 范围搜索:使用
range
查询。
GET /_search
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
- 复合查询:使用
bool
查询,可以结合must
,should
,must_not
子句。
GET /_search
{
"query": {
"bool": {
"must": {
"term": {
"user.id": "kimchy"
}
},
"filter": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
}
}
- 高亮搜索结果:使用
highlight
查询。
GET /_search
{
"query": {
"match": {
"message": "elasticsearch"
}
},
"highlight": {
"fields": {
"message": {}
}
}
}
这些是Elasticsearch中常见的搜索方式。根据实际需求,可以组合使用这些查询,以实现更复杂的搜索逻辑。
评论已关闭