我正在使用 Lucene.Net 2.9.2,我认为我需要编写一个自定义标记器,但想检查以防我遗漏了一些明显的东西。
该文档由标题、关键字和内容以及一些元数据(如作者、日期等)组成,每个元数据都存储为一个字段。这些文件是软件技术文件,可能在标题、关键字和/或内容中包含“.Net”、“C++”、“C#”等短语。
我将 KeywordAnalyzer 用于 Keyword 字段,StandardAnalyzer 用于 Title 和 Content - StopWords 和 LowerCase 等是必要的,因为文档可能很长。
我还为搜索编写了一个同义词自定义过滤器,因为我想搜索例如“C#”但也识别“CSharp”、“C#.Net”等。标记器已经从“C#”中删除了“#”或来自 C++ 的“++”,因此可能与“C”语言参考相混淆
我的想法是,当我索引标题和内容时,我需要根据当前标记是关键字短语的一部分还是它的任何同义词来分支标记化。
这是最好的方法吗?提前谢谢了 :)