【问题标题】:Search for a phrase and a word together in one sentence using Lucene使用 Lucene 在一个句子中同时搜索一个短语和一个单词
【发布时间】:2018-01-01 18:01:56
【问题描述】:

我正在开发一个程序,该程序将使用 Apache Lucene 在一个句子中搜索两个关键字。例如

keyword1 = "青苹果"; 关键字 2 = "橙色"; 这两个关键字必须在一个句子中。

但是,到目前为止,我可以搜索“orange”和“apple”,但不能搜索词组和单词的组合。句子和我的查询如下:

“句子:苹果是红色的。青苹果很好。我喜欢青苹果和橙子。”

我想搜索两个关键字都存在的句子。

    String keyword1 = "Green Apple";
    String keyword2 = "Orange";
    QueryParser queryParser = new QueryParser(Version.LUCENE_36, "contents",
            new StandardAnalyzer(Version.LUCENE_36));
    Query query = queryParser.parse("" + keyword1+ " AND" + " " + keyword2);

使用此查询我无法找到该句子。但是对于keyword1 = Apple;keyword2 = Orange;,查询工作正常。

【问题讨论】:

    标签: java search lucene


    【解决方案1】:

    您只需要用引号将这些“关键字”括起来,这样 Lucene 就可以使用它们构建短语查询。如果解析器找到一个空格,它只使用默认运算符(默认为 OR)。

    所以代码应该是:

    Query query = queryParser.parse("\"" + keyword1 + "\" AND" + "\"" + keyword2 + "\"");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2012-07-08
      • 2014-10-22
      • 1970-01-01
      相关资源
      最近更新 更多