簡體   English   中英

使用Lucene在一個句子中一起搜索短語和單詞

[英]Search for a phrase and a word together in one sentence using Lucene

我正在開發一個程序,它將使用Apache Lucene在一個句子中搜索兩個關鍵字。 例如

keyword1 =“青蘋果”; keyword2 =“橙色”; 這兩個關鍵字必須在句子中。

但是,到目前為止,我仍然可以搜索“橙色”和“蘋果”,但不能搜索詞組和單詞的組合。 句子和我的查詢如下:

“句子:一個蘋果是紅色的。一個綠色蘋果是很好的。我喜歡綠色蘋果和橙色。”

我想搜索兩個關鍵字都存在的句子。

    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; 該查詢工作正常。

您只需要用引號將這些“關鍵字”括起來即可,以便Lucene可以使用它們構建短語查詢。 如果解析器找到一個空格,它將僅使用默認運算符(默認情況下為OR)。

因此,代碼應為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM