gpt4 book ai didi

elasticsearch - 存储整数而不是全文会更好吗?

转载 作者:行者123 更新时间:2023-12-02 22:30:29 25 4
gpt4 key购买 nike

我正在尝试使用ES汇总报告解决方案。
由于我在ES方面的经验很基础,因此我想知道如果我在过滤时使用整数,是否会有所作为。

我知道过滤器的值是什么,并且我将不允许全文搜索。

因此,在我的查询中,我可以

{
"filter" : {
"term" : { "gender" : 1 }
}

要么
{
"filter" : {
"term" : { "gender" : "male" }
}

使用整数而不是字符串搜索会更快吗?

另外,我认为使用整数会更好地占用磁盘空间,对吗?

最后,在这种情况下,我不需要使用MySQL吗-不需要全文搜索?

提前谢谢了,
天使

最佳答案

对于过滤器来说,这不太可能有所作为。但是要记住的一点是,在聚合过程中,文档值的字符串字段(例如未分析的字段)将被加载到称为全局序号的堆内存映射中。根据可能取值的数量(对于性别而言,取值可能很小),这可能会对JVM施加很大压力。

您可能会尝试将其映射为 bool(boolean) 字段。如果这样做,或者将其映射为整数,则可以节省一些空间。但是从查询的 Angular 来看,它应该有所作为。

就MySQL vs ES而言,这是一个棘手且更细微的问题。它取决于(除其他事项外)您要做什么,正在使用多少数据以及是否需要交易担保和/或MVCC。 MySQL和ES都可以通过这样的过滤器很好地运行(假设您在MySQL中为性别设置了二级索引...实际上是Lucene映射的基于B树的关系的版本)。根据您提供的信息,并没有充分的理由选择一个工具而不是另一个工具。您可能需要提供更多的上下文,或者(也许更好)将两者结合起来,看看您更喜欢哪一个。

祝你好运。

关于elasticsearch - 存储整数而不是全文会更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com