当使用 Elasticsearch 进行查询时,您会使用 Elasticsearch 查询语言(Query DSL),它允许您构建复杂的查询以搜索和检索文档。
以下是一些常用的 Elasticsearch 查询语句示例,以及它们的说明:
{
"query": {
"match": {
"field_name": "search_text"
}
}
}
这将在指定字段中搜索与搜索文本部分匹配的文档。
{
"query": {
"term": {
"field_name": "exact_value"
}
}
}
该查询用于搜索字段中包含精确值的文档,不会分析搜索词。
{
"query": {
"range": {
"age": {
"gte": 18,
"lte": 30
}
}
}
}
这个查询用于查找在指定范围内的数值字段(在这个例子中是年龄)的文档。
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" } },
{ "match": { "field2": "value2" } }
],
"must_not": [
{ "term": { "field3": "value3" } }
],
"should": [
{ "term": { "field4": "value4" } }
]
}
}
}
布尔查询允许您将多个查询组合在一起,使用 must
(AND)、 must_not
(NOT)、 should
(OR)来构建复杂的查询逻辑。
{
"query": {
"wildcard": {
"field_name": "sea*"
}
}
}
通配符查询允许您在字段中使用通配符(如 *
和 ?
)来匹配文本。
{
"query": {
"match_phrase": {
"field_name": "exact phrase"
}
}
}
这个查询会查找包含完整短语的文档,而不只是单个词的匹配。
这些只是一些基本的 Elasticsearch 查询示例,实际上 Elasticsearch 还提供了更多丰富的查询类型和功能,如模糊查询、多字段查询、嵌套查询、聚合等等。您可以根据您的需求和数据结构来选择合适的查询类型和组合。在实际使用中,您需要将这些查询嵌入到 Elasticsearch 的查询 API 中。