elasticsearch 大字段高亮速度慢优化

1 篇文章 0 订阅
1 篇文章 0 订阅

对大字段在设计mapping时,添加term_vector参数,如下:

"description": {
          "similarity": "customize_bm25",
          "type": "text",
          "store": true,
          "analyzer": "my_jieba_index_analyzer",
          "search_analyzer": "my_jieba_search_analyzer",
          "term_vector" : "with_positions_offsets"
        }

配置该参数后,能明显看到高亮速度快了很多。

但是,当输入某些查询词时,可能会遇到如下错误:

错误Lucense解析字段中的空格导致的。

解决方案:把空格term,使用filter过滤掉。

但是,在添加空格filter时,发现一个问题,就是使用jieba分词器,就算添加了如下filter过滤器,也没办法过滤到空格term:

"my_stop_filter": {
            "ignore_case": "true",
            "type": "stop",
            "stopwords": [
              " ",
              "的",
              "得",
              "地"
            ]
          },

而使用ik分词器是可以,所以就转战ik了。定义了两个解析器,如下:

"my_ik_index_analyzer": {
            "filter": [
              "my_stop_filter"
            ],
            "type": "custom",
            "tokenizer": "ik_max_word"
          },
          "my_ik_search_analyzer": {
            "filter": [
              "my_stop_filter"
            ],
            "type": "custom",
            "tokenizer": "ik_smart"
          }

大字段mapping定义如下:

"description": {
          "similarity": "customize_bm25",
          "type": "text",
          "store": true,
          "analyzer": "my_ik_index_analyzer",
          "search_analyzer": "my_ik_search_analyzer",
          "term_vector" : "with_positions_offsets"
        }

如此,上述报错就会消失。

done......

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于Elasticsearch聚合速度慢的问题,有几个可能的原因和解决方案可以尝试: 1. 数据量过大:如果您的索引中包含大量的文档,聚合操作可能会变得缓慢。您可以尝试通过分片和副本的方式来优化索引的性能。增加分片数量可以提高并行处理能力,而增加副本数量可以提高读取性能。 2. 查询复杂度高:某些聚合操作可能需要对大量文档进行计算和排序,导致速度变慢。您可以尝试优化查询条件,减少计算和排序的工作量。例如,可以限制查询的时间范围、缩小查询结果的范围,或者使用缓存来加速聚合操作。 3. 硬件资源不足:如果您的Elasticsearch集群的硬件资源(如CPU、内存、磁盘)不足,可能也会导致聚合操作变慢。您可以考虑升级硬件或增加节点数量来提高性能。 4. 优化聚合操作:Elasticsearch提供了多种聚合操作,不同的操作可能有不同的性能表现。您可以尝试使用更适合您需求的聚合操作,或者对聚合操作进行优化。例如,可以使用近似聚合方法(例如基数估计、采样)来加速聚合操作。 5. 使用缓存:如果某些聚合操作的结果可以被缓存并重复使用,可以考虑使用Elasticsearch的缓存功能来加速查询。这样可以避免每次都重新计算聚合结果。 希望这些解决方案对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值