【问题标题】:lucene phrase exact searchlucene 词组精确搜索
【发布时间】:2015-09-08 05:53:52
【问题描述】:

我在我的代码中使用短语查询进行休眠 lucene 搜索。它正在工作,但我想做不区分大小写的精确搜索。我尝试过术语查询,但它区分大小写。 我想像这样搜索:

美丽的雨天。 如果我搜索“下雨天”,结果应该是 0 次点击。 如果我搜索“beautifulrainy Day”,结果应该是 1 次命中。 如果我搜索“Day”,结果应该是 0 次点击。

基本上我想要java(.equalignorecase)类型搜索而不是(.contains)。如果可能的话,我想继续使用短语查询。

【问题讨论】:

    标签: java hibernate search lucene hibernate-search


    【解决方案1】:

    如果你想要不区分大小写的匹配,你必须索引你的数据不区分大小写。

    例如,您可以通过使用 String 的 toLowerCase() 值将另一个字段添加到您的类中,然后搜索该字段来执行此操作。

    (或者也许休眠搜索允许使用选项进行不区分大小写的索引?)

    【讨论】:

      【解决方案2】:

      嗨,请通过我提供的answer。搜索不区分大小写的确切术语。刚刚在双引号中传递了搜索字符串,作为完全匹配搜索。

      QueryParser parser = new QueryParser(Version.LUCENE_34, "TITLE" ,new StandardAnalyzer(Version.LUCENE_34));
      
          Query query;
      
          query = parser.parse("\"beautifulrainy Day\"");
      
          TopDocs hits = searcher.search(query,3);
      

      这里TITLE是字段的名称,所以请输入您在索引时使用的字段名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        • 2015-08-02
        • 1970-01-01
        • 2013-10-07
        • 2011-07-28
        • 2011-07-04
        相关资源
        最近更新 更多