开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 264|回复: 3
打印 上一主题 下一主题
收起左侧

[其它求助] 有无懂elasticsearch的大佬

[复制链接]
结帖率:67% (4/6)
跳转到指定楼层
楼主
发表于 2024-10-13 01:54:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   湖北省武汉市
100精币
请教一下elasticsearch模糊cha询索引创建问题


字段是 type和Number
type需要储存快递公司名称
Number需要储存单号


如何创建索引才能实现快速的模糊cha询
示例


GET /express/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match_phrase": {
            "type": "某某中通快递点"
          }
        },
        {
          "wildcard": {
            "Number": {
              "value": "2????????????3"
            }
          }
        }
      ]
    }
  }
}


尝试使用wildcardcha询太慢,有没有其他的方法可以实现,如何创建索引请大佬指点一二


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:71% (5/7)

签到天数: 19 天

沙发
发表于 2024-10-13 11:05:32 | 只看该作者   吉林省吉林市
json取值就行
回复

使用道具 举报

结帖率:71% (5/7)

签到天数: 19 天

板凳
发表于 2024-10-13 11:08:51 | 只看该作者   吉林省吉林市
json对你这个的例子 你可以自己在进行修改 速度很快哦

新建 易程序.e

858.88 KB, 下载次数: 0

回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 11 天

地板
发表于 2025-1-28 00:37:14 | 只看该作者   河南省焦作市
为了在Elasticsearch中实现快速的模糊cha询,可以考虑使用以下几种策略来优化你的索引和cha询性能:

1. **使用合适的分词器(Analyzer)**:对于`type`字段中的快递公司名称,你可以使用标准分词器或者自定义一个适合你数据的分词器。这样可以在存储时将文本分解为更小的单元,便于后续进行匹配cha询。

2. **启用n-gram或edge n-gram过滤器**:这是提高模糊搜索性能的一个常见方法。通过在索引时创建多个子字符串(n-grams),可以在cha询时更快地匹配相似的词。你需要在索引设置中配置一个自定义分析器,包括n-gram或edge n-gram类型的tokenizer或filter。

    示例:
    ```json
    PUT /express
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "custom_ngram_analyzer": {
              "tokenizer": "my_tokenizer"
            }
          },
          "tokenizer": {
            "my_tokenizer": {
              "type": "ngram",
              "min_gram": 3,
              "max_gram": 3,
              "token_chars": [
                "letter",
                "digit"
              ]
            }
          }
        }
      },
      "mappings": {
        "properties": {
          "type": {
            "type": "text",
            "analyzer": "custom_ngram_analyzer"
          },
          "Number": {
            "type": "text",
            "analyzer": "custom_ngram_analyzer"
          }
        }
      }
    }
    ```
    注意,上面的例子是一个简化版,实际应用中可能需要根据具体需求调整参数。

3. **避免直接使用wildcardcha询**:Wildcardcha询可能会比较慢,特别是对于前缀模式(例如以某个字符开头)。如果必须使用类似的功能,考虑使用上述的n-gram技术替代。

4. **使用match_phrase_prefix代替wildcard**:对于部分匹配的情况,有时候使用`match_phrase_prefix`比直接使用wildcard效率更高。

5. **对Number字段进行特殊处理**:由于快递单号通常由数字组成,且长度固定或有规律,可以考虑对这个字段采取不同的策略,比如不分词,直接作为`keyword`类型,并使用专门的数字范围cha询或其他更适合的技术。

请根据你的具体需求和数据特性选择合适的方法。记住,在做出改变之前,最好先在一个测试环境中进行尝试,以评估其对你特定情况的影响。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表