首页 > 解决方案 > 检查索引(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" />
    

标签: luceneumbracoexamine

解决方案


lucene分析器中不会改变您的数据。它们仅确定如何索引数据。因此,您可以根据需要索引数据(不要在代码中小写数据),并按原样检索值。

作为旁注,lucene您可以拥有具有不同属性的字段(索引/未索引,存储/未存储)。因此,您可以添加两次相同的字段:一次仅用于检索(存储且未编制索引),另一次用于搜索(索引为小写但未存储)。检查是否examine支持这些类型的字段。


推荐阅读