我正在尝试使用Apache Lucene索引进行搜索。为此,我在一个字段上创建了Lucene索引 显示路径的文件路径,不进行分析。
现在我无法搜索未分析的字段。是否可以搜索未分析的字段。或者有没有办法在分析时停止分割要存储的单词。
答案 0 :(得分:2)
您可以搜索未分析的字段查询,但只有在字段值完全等于搜索字词时才会匹配。正如我们提到的那样 - 应该使用短语查询。
如果您要搜索该字段,则需要使用正在分析的字段重新索引文档。
您可以尝试使用现有的分析器/标记器(例如,在创建IndexWriter时设置StandardAnalyzer),或者使用文件分隔符作为分隔符实现您自己的文件路径分割为标记。
如果您感兴趣的话,Solr的PathHierarchyTokenizerFactory已经将一些分层路径拆分为令牌,然后再存储到索引中,这使得文件路径搜索更加容易。
答案 1 :(得分:1)
是否可以搜索未分析的字段
要搜索未分析的字段,您需要使用phrase query。
或者有没有办法在分析时停止分割要存储的单词
抱歉,我不明白这一点。如果未分析字段,则不会将其拆分并按原样存储。你能澄清一下你的问题吗?
答案 2 :(得分:0)
是的,你可以在IndexSearcher配置中像KeywordAnalyzer这样的其他人替换standardAnalyzer。它将该字段视为搜索的一个术语。