【问题标题】:search on non analyzed field using lucene使用 lucene 搜索未分析的字段
【发布时间】:2013-02-07 07:36:07
【问题描述】:

我正在尝试使用 Apache Lucene 索引进行搜索。为此,我在字段上创建了 Lucene 索引 显示路径且未分析的文件路径。

现在我无法搜索未分析的字段。是否可以在未分析的字段上进行搜索。或者有什么方法可以在分析时停止拆分要存储的单词。

【问题讨论】:

    标签: java lucene


    【解决方案1】:

    您可以搜索未分析的字段查询,但只有在字段值完全等于搜索词的情况下才会匹配。正如 Mindas 所提到的 - 应该使用短语查询。

    如果您想搜索该字段,您需要使用正在分析的该字段重新索引文档。

    您可以尝试使用现有的分析器/标记器(例如,在创建 IndexWriter 时设置 StandardAnalyzer)或实现您自己的分析器/标记器,使用文件分隔符作为分隔符将文件路径拆分为标记。

    如果您有兴趣,Solr 的 PathHierarchyTokenizerFactory 已经将一些分层路径拆分为标记,然后再存储到索引中,这使得文件路径搜索变得更加容易。

    【讨论】:

      【解决方案2】:

      是否可以搜索未分析的字段

      要搜索未分析的字段,您需要使用phrase query

      或者有什么方法可以在分析时停止拆分要存储的单词

      对不起,我不明白。如果未分析字段,则不会拆分并按原样存储。你能澄清你的问题吗?

      【讨论】:

        【解决方案3】:

        是的,您可以在 IndexSearcher 配置中将 standardAnalyzer 替换为 KeywordAnalyzer 等其他工具。它将将该字段视为一个搜索词。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-25
          • 1970-01-01
          • 2011-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-29
          相关资源
          最近更新 更多