Term Query API是一种基本的查询类型,用于精确匹配某个字段中包含指定值的文档。
本文将介绍ElasticSearch的Term Query API,并提供相应的代码示例。代码尽量简短,以便读者快速上手使用该API。
Term Query API概述
Term Query API用于查询一个字段中包含指定值的文档,类似于关系型数据库中的“等于”查询。该API的基本语法如下所示:
{
"query": {
"term": {
"field": {
"value": "keyword"
}
}
}
}
其中,“field”表示要查询的字段名称,“keyword”表示要查询的关键字。如果该字段中包含了指定的关键字,则该文档符合查询条件,将被返回。
Term Query API代码示例
下面是一个使用Term Query API查询名为“my_index”的索引中,字段“title”中包含关键字“ElasticSearch”的文档的示例代码:
import requests
url = "http://localhost:9200/my_index/_search"
headers = {
"Content-Type": "application/json"
}
data = """
{
"query": {
"term": {
"title": {
"value": "ElasticSearch"
}
}
}
}
"""
response = requests.get(url, headers=headers, data=data)
print(response.json())
上述代码向ElasticSearch实例的“/my_index/_search”路径发送了一个JSON格式的数据,该数据定义了查询的内容。在这里,我们使用Term Query API查询名为“my_index”的索引中,字段“title”中包含关键字“ElasticSearch”的文档。
如果查询成功,ElasticSearch会返回一个JSON格式的响应,包含了查询结果的相关信息,如文档ID、得分等。
Term Query API高级用法
Term Query API还支持一些高级用法,如指定查询的精度、忽略大小写等。下面是一些常用的高级用法示例代码:
指定查询精度
data = """
{
"query": {
"term": {
"title": {
"value": "ElasticSearch",
"boost": 1.5
}
}
}
}
上述代码指定了查询精度为1.5倍,默认查询精度为1。
忽略大小写
data = """
{
"query": {
"term": {
"title.keyword": "elasticsearch"
}
}
}
"""
response = requests.get(url, headers=headers, data=data)
print(response.json())
上述代码通过指定字段名为“title.keyword”,从而忽略了大小写。如果不指定,Term Query API默认是区分大小写的。