Elasticsearch 与 Python 之间的通信
您可以使用Python 的原生urllib2 与ES 进行通信。然而,Python requests 是 Python 3 上的新主力,它也可以作为 Python 2 的包提供。它比 urllib2 更直接,这就是我们要在这里使用它的原因。所以去拿吧!
对于搜索功能,我们主要需要了解三个操
作: 1)创建Elasticsearch索引。2)向索引提供数据。3) 检索搜索结果。
1. 创建 Easticsearch 索引
在向我们的索引提供文本并检索搜索结果之前,ES 必须 柬埔寨手机号码清单 了解有关您的内容的一些详细信息以及应如何处理数据。因此,我们创建一个由设置和映射组成的ES索引。“映射”相当于 Django 模型的 ES – 内容的数据字段定义。
创建ES索引的Python示例:
您刚刚创建了第一个 ES 索引一点也不神奇
:只需创建一个包含所有信息的 JSON 字典,并通过 Python 请求以 JSON 字符串格式将其发送到 ES 服务器。“my_index”是我们自由选择的索引名称。如果您愿意,您可以以不同的方式称呼它。该名称将用于稍后提供和检索数据。您可以创建多个具有不同名称的索引。
“mappings”键描述了索引将保存哪些数据。您可以为您的博客、论坛等拥有任意数量的不同命名的映射。每个映射都包含存储数据的字段 – 就像 Django 模型一样。ES 文档 中给出了所有可用核心字段类型的列表。
ES 术语表中解释了“分片”和“副本” 。如果没有“settings”键,ES 将简单地使用默认值 – 在大多数情况下这是完全没问题的。
2. 为索引提供数据
。我们虚构的 BlogPost 模型的示例 Python 代码,其中 KH 列表 包含标题、描述和内容作为文本字段:
导入 json,
来
打印response.text
我们迭代所有博客文章并创建一个长数据字符串,其中包含 JSON 编码字 典的分隔行。这是因为我们使用ES 批量 API 将大量条目输入到我们的索引中。ES 逐行读取数据,这就是为什么我们在每个数据集末尾使用换行符“\n”。使用批量操作比运行许多单独的请求更快。