【Elasticsearch】学习笔记-p7(数据聚合&自动补全)
warning:
这篇文章距离上次修改已过196天,其中的内容可能已经有所变动。
from datetime import datetime
from elasticsearch import Elasticsearch
# 初始化Elasticsearch客户端
es = Elasticsearch(hosts=["localhost:9200"])
# 数据聚合示例
def aggregation_example():
# 定义聚合查询
query = {
"aggs": {
"distinct_authors": {
"terms": {
"field": "author",
"size": 10
}
}
}
}
# 执行查询
response = es.search(index="books", body=query)
# 打印结果
for bucket in response['aggregations']['distinct_authors']['buckets']:
print(bucket['key'], bucket['doc_count'])
# 自动补全示例
def autocomplete_example(user_input):
# 定义自动补全查询
query = {
"suggest": {
"book-suggester": {
"prefix": user_input,
"completion": {
"field": "suggest",
"fuzzy": {
"fuzziness": 1
}
}
}
}
}
# 执行查询
response = es.search(index="books", body=query)
# 提取补全建议
for suggestion in response['suggest']['book-suggester'][0]['options']:
print(suggestion['text'])
# 执行聚合查询
aggregation_example()
# 执行自动补全查询
autocomplete_example("Elastic")
这个代码示例展示了如何在Elasticsearch中使用聚合查询和自动补全查询。聚合查询用于找出某个字段的不同值及其数量,自动补全查询用于提供基于用户输入的可能补全建议。这里假设有一个名为"books"的索引,它包含了"author"和"suggest"字段。
评论已关闭