Elasticsearch 中的 term、terms 和 match 查询
warning:
这篇文章距离上次修改已过194天,其中的内容可能已经有所变动。
在Elasticsearch中,term、terms和match是三种常用的查询类型。
- term查询:用于精确匹配,这个查询会查找处于文档中指定字段里确切值的文档。例如,如果你想找到所有标题字段为"Elasticsearch: The Definitive Guide"的文档,你可以使用term查询。
{
"query": {
"term": {
"title": "Elasticsearch: The Definitive Guide"
}
}
}
- terms查询:类似于term查询,但是允许你指定多个值进行匹配。例如,如果你想找到所有标题字段为"Elasticsearch"或"Solr"的文档,你可以使用terms查询。
{
"query": {
"terms": {
"title": ["Elasticsearch", "Solr"]
}
}
}
- match查询:用于全文搜索,它会将查询的文本与字段的全文内容进行匹配。它会先分析查询文本,然后使用分析器分析字段值,并找到匹配的文档。
{
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
注意:term和match查询适用于过滤和精确匹配场景,而match查询适用于全文搜索场景。term查询不会进行分词,而match查询会进行分词。所以,如果你想要精确匹配一个词,你应该使用term查询,如果你想要搜索文本中的一个词,你应该使用match查询。
评论已关闭