Elasticsearch——他们是怎么做到的?

Collaborate on cutting-edge hong kong data technologies and solutions.
Post Reply
suchona.kani.z
Posts: 194
Joined: Sat Dec 21, 2024 5:52 am

Elasticsearch——他们是怎么做到的?

Post by suchona.kani.z »

在 Zalando and Co. 这样的网站上,只需点击几下鼠标即可浏览无穷无尽的产品组合,并且可以使用关键字轻松找到您正在寻找的商品。秘密:用户不必通过严格的导航树进行导航,而是可以设置一些所需的标准(所谓的方面),然后查看适当的结果。这些设定方面已经涵盖了广泛的用户兴趣——例如价格、颜色或尺寸。它还显示相应搜索结果的点击次数。该网站不仅会在每次点击时重新过滤结果列表,还会计算哪些尚未设置的方面适用于多少条目。

这一切都很好,但是如何为自己的网站或应用程序配备如此多方面的导航或搜索呢?在此背景下,搜索引擎Elasticsearch提供了基于Lucene程序库的现代解决方案。接受正确的查询后,Elasticsearch 会在一个响应中返回表示各个方面所需的所有内容。在接下来的部分中,我将向您详细展示什么是重要的。

饲料弹性搜索
为了进行相应的搜索,你必须提前定义一些东西:首先,它是关于了解数据结构,拥有尽可能有效的测试数据并定义数据导入的方式并在 Elasticsearch 中使用。只有当您了解 Elasticsearch 数据的处理方式时,您才应该设 商业房地产的潜在客户 计单独的映射并创建搜索索引。

对于与数据存储相关的操作(例如索引、更新、重新索引或删除),Elasticsearch 提供了一个记录良好的 REST API,其中包含对各个操作的一系列调用。您可以轻松地将这些集成到您的应用程序中,然后解决它们 - 例如在批处理作业中或通过事件流/事件监听。但是,根据所使用的框架、库或现有软件,您应该寻找现有的解决方案。 “故障保存”流程所需的工作通常是巨大的。

以下调用向您展示了如何使用 POST 请求对文章进行索引
此时可能需要注意:在 Elasticsearch 中创建记录时,“记录 ID”应始终引用您想要索引的条目。这样,您还可以事后对个别数据进行适当的更新或删除。

正确理解和映射数据
使用上述示例调用对数据集建立索引也是可能的,无需任何进一步的操作或了解数据结构 - 例如字段类型、字段长度或有关单个字段是否应实际建立索引的信息。在这种情况下,Elasticsearch 将简单地使用标准映射,但这在搜索命中质量和索引存储大小方面会有一些缺点。

如以下摘录所示,如果您将映射存储在 Elasticsearch 中并在创建映射时使用它来索引数据,那就更好了。首先,确定字段的数据类型并将其包含在映射中非常重要。在这里您可以区分“日期”、“长整型”、“关键字”或“文本”,其中“关键字”数据类型通常用于要过滤的数据字段。例如,在我们的摘录中,这将是属性“大小”。

所谓分析器的定义在“搜索结果质量”方面带来了多种优势:使用小写、german_stemmer 或 german_normalization,即使用户输入错误,也会显示正确的搜索结果。如果您使用 NGram 分析器,用户仅输入部分搜索词也会找到结果。
Post Reply