我正在尝试使用 Apache Lucene 索引进行搜索。为此,我在显示路径的字段文件路径上创建了 Lucene 索引,但未对其进行分析。
现在我无法搜索未分析的字段。是否可以在未分析的字段上进行搜索。或者有什么方法可以在分析时停止拆分要存储的单词。
您可以搜索未分析的字段查询,但只有在字段值完全等于搜索词的情况下才会匹配。正如 Mindas 所提到的 - 应该使用短语查询。
如果您想搜索该字段,则需要使用正在分析的该字段重新索引您的文档。
您可以尝试使用现有的分析器/标记器(例如,在创建 IndexWriter 时设置 StandardAnalyzer)或实现您自己的分析器/标记器,使用文件分隔符作为分隔符将文件路径拆分为标记。
如果您有兴趣,Solr 的 PathHierarchyTokenizerFactory 已经将一些分层路径拆分为标记,然后再存储到索引中,这使得文件路径搜索变得更加容易。
是否可以搜索未分析的字段
为了搜索未分析的字段,您需要使用词组查询。
或者有什么方法可以在分析时停止拆分要存储的单词
对不起,我不明白这个。如果未分析字段,则不会拆分并按原样存储。你能澄清你的问题吗?
Yes, you can replace standardAnalyzer by others like KeywordAnalyzer in IndexSearcher config. It will treat the field as one term for search.