问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

elasticsearch,使用normalizer优化keyword字段的查询

发布网友 发布时间:2024-09-30 21:19

我来回答

1个回答

热心网友 时间:2024-12-10 13:53

在elasticsearch中,使用keyword类型字段索引结构化数据时,原始值直接保留,未经预处理。当我们尝试查询包含关键词的文档时,es首先获取该字段的类型,并调用termQuery构建查询语句。然而,对于keyword字段,直接调用父类TermBasedFieldType的termQuery方法,此方法使用indexedValueForSearch对查询关键字进行处理。此过程中,KeywordFieldMapper实现了indexedValueForSearch,但由于在初始化时使用了Lucene.KEYWORD_ANALYZER,因此未进行任何处理,导致搜索大小写不敏感的问题。

解决方法在于利用keyword类型提供的normalizer配置参数,在索引前进行预处理工作。通过自定义normalizer,可以定义character filters和token filters,比如使用lowercase token filter来实现忽略大小写。在CustomNormalizerProvider中,解析配置的字符过滤器和令牌过滤器,组合生成自定义分析器。在生成字段mapper时,根据配置的normalizer名称获取对象并设置为字段类型的normalizer和搜索分析器。

当索引文档时,获取keyword字段类型的normalizer,对值进行处理。而搜索时,由于已重置了searchAnalyzer为自定义的normalizer,直接调用normalize方法处理输入关键字。最终,无论输入的关键字大小写如何,都能搜索到相应结果。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
桂林医学院王牌专业排名一览表 桂林医学院是几本院校 桂林医学院一流本科专业建设点名单 无锡有哪些这方面的公司啊? 南京方东通信系统工程有限公司怎么样 容留他人吸毒一般怎么处罚 容留他人吸毒罪会受到什么样的处罚 容留他人吸毒,不够成犯罪,拘留十五天以下,几天以上 安庆市附近好玩的景点 安庆周边旅游景点大全排名 玩转Elasticsearch routing功能 如何使用ElasticSearch存储和查询数据 c1倒车入库的技巧 第三轮量化宽松未来趋势 景峰医药为什么跌得那么厉 征途2圣是几词条 比熊泪痕特别严重怎么办啊 如何护理 为什么我老公做着做着就软了,不怎么硬 怎么让iphone连接电脑没有弹窗 怎么设置示波器的时间轴坐标 礼县白关乡和湫山哪个穷 礼县行政区划 留党察看期限最长不得超过()。 留党察看最长不超过多少年 永不磨灭的番号最后一集 31号使用新的卡会扣半个月的话费吗 例假完了五天又出血是怎么回事 月经干净五天后又出血怎么回事 例假完了五天又出血怎么回事 唐玄奘的取经路线图 ElasticSearch进阶篇之IK分词器和自定义词库实现 使用Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索_百度... Elastic Search 分词器 网贷还清后,这几个步骤你一定要做,否则将影响银行贷款!附网贷客服电 ... “网贷”还清后,这个证明一定要办! 九阴绝学转生多少开启神剑 如何自制零失败的香煎豆腐? mac显示文件路径和复制粘贴路径? 怎么卸载win10电脑里的程序 时速迈和公里怎么 我被骗10000别人用ps机划了怎么办 WOW找人带PS,被骗G 大哥这张图不是PS的吧,我怕被骗。是真的转账吧 网丨投被骗了怎么办 怎么学习PS技术??? 畸形动物园第三章的boss是谁 卢怀玉人物事迹 中国棉花协会分支机构 国欣棉11号基本信息 国欣棉6号品种简介 能说一下外国比较著名的田径运动员吗? 比如 跳远 中长跑 短跑 谢谢_百...