lucene - 检查索引(Lucene)中不区分大小写的搜索
问题描述
是否可以在不更改存储数据的情况下使用检查索引和 Lucene 进行不区分大小写的搜索?我正在保存带有 ID、标题、文本和日期的文章。我不想将我的数据索引为小写,因为我想从索引中读取我的数据并按原样显示。所以我可以跳过去数据库获取数据的步骤。将相同的数据保存两次,一次按原样保存,一次保存为小写,感觉不是正确的做法。
关于如何解决这个问题的任何建议?
检查索引.config
<IndexSet SetName="MySearchIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/MySearch/" >
<IndexUserFields>
<add Name="Id" />
<add Name="Title" />
<add Name="Text" />
<add Name="Date" />
</IndexUserFields>
检查设置.config
<add name="MySearchIndexer" type="Examine.LuceneEngine.Providers.SimpleDataIndexer, Examine"
dataService="X.Service.MyIndexerService, X"
indexTypes="CustomData"
runAsync="false"
enableDefaultEventHandler="true"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>
<add name="MySearchSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net" enableLeadingWildcard="true" />
解决方案
在lucene
分析器中不会改变您的数据。它们仅确定如何索引数据。因此,您可以根据需要索引数据(不要在代码中小写数据),并按原样检索值。
作为旁注,lucene
您可以拥有具有不同属性的字段(索引/未索引,存储/未存储)。因此,您可以添加两次相同的字段:一次仅用于检索(存储且未编制索引),另一次用于搜索(索引为小写但未存储)。检查是否examine
支持这些类型的字段。
推荐阅读
- php - UNIX时间,响应总是一分钟(更快/更少)PHP MySQL
- git - git - 更新遥控器 - 我需要提供遥控器名称吗?
- javascript - JS:如何将项目添加到从构造函数实例化的新对象数组中?
- excel - Excel VBA在单元格空白处插入日期
- javascript - 量角器,AssertionError:预期 '24' 是数字或日期
- jquery - 由 jQuery 发送的 Post 请求被视为 Get Request
- javascript - 为什么画布上下文不能写在函数内部?
- python - Python - FamaMacBeth,不能从 [datetime64[ns]] 到 [float64] 键入 datetimelike
- python - 如何在线性回归模型中为 x 值和 y 值赋予颜色?
- c# - 通过蓝牙从 WPF 向安卓设备发送文本、图像和视频