performance - Elasticsearch 中的性能
问题描述
我现在开始使用弹性搜索。
我在关系数据库中有两种数据,但在这两种情况下,我都希望尽快从第一个表中找到记录。
案例 1:绑定表 1:n(示例发票 - 发票项目)
我是否将数据保存到 elasticsearch 系统:slave 或 master_id 中的所有行,并将 slave 中的所有数据分组为单个字符串?
案例 2:绑定表 n:1(示例发票 - 客户)
我是否将数据保存为案例 1 到独立索引或将下一列添加到前一个索引?
问题是有时我只需要搜索包含特定发票项目、有时是特定客户、有时同时包含发票项目和客户的记录。
我应该创建一个包含所有数据的索引,还是所有 3 个变体?
另一个问题是,当存储的数据只有 EAN(13 位数字)而不是纯文本时,是否可以以某种方式加速 elasticsearch 中的搜索?
感谢
雅罗斯拉夫
解决方案
您应该对所有数据(发票、项目和客户)进行非规范化并仅使用单一索引以获得最佳性能,Elasticsearch 虽然支持连接和父子关系,但当所有数据都是单一索引的一部分时,它们的性能远不及对您的数据进行快速基准测试将很容易证明这一点。
推荐阅读
- sql - SQL 问题 - 我的 WHERE 子句有什么问题
- javascript - 我如何在公会中显示在 discord.js 上创建成员和服务器图标
- python - Google Colab、Pandas 和 .DataFrame - 如何跳过行?
- python - 如何从列表中删除这些空白?
- go - 如何更新嵌套的 protobuf 字段
- .net - .net 远程属性,页面加载后如何调用?
- blockchain - 有没有办法在以太坊上使用没有智能合约的多重签名?
- google-apps-script - 使用 App 脚本连续获取新的输入值
- solr - 如何将 Apache Solr 中的图像数据显示和检索到网页中的图像中?
- python - 如何将模算术方程转换为python代码?