簡體   English   中英

JAVA Lucene沒有在Field上給出搜索結果嗎?

[英]JAVA Lucene not giving search results on Field?

我正在創建這樣的Lucene文檔:

Document document = new Document();
document.add(new Field(FIELD_FOLDER_PATH,mSearchInput, Field.Store.YES, Field.Index.NOT_ANALYZED ));
Reader reader = new FileReader(file);
document.add(new Field(FIELD_CONTENTS, reader));
indexWriter.addDocument(document);

在CONTENTS上執行查詢並且還使用通配符時*我能夠獲取結果:

QueryParser queryParser = new QueryParser (Version.LUCENE_36,FIELD_CONTENTS, analyzer);
Query query = queryParser.parse(searchString+"*");

但是,當我對FIELD_FOLDER_PATH使用相同的查詢時,沒有任何結果:

QueryParser queryParser = new QueryParser (Version.LUCENE_36,FIELD_FOLDER_PATH, analyzer);
Query query = queryParser.parse(FolderPath+"*");

但是,只有在提供確切的字符串時,我才能獲取結果。

我的問題是:為什么我不能使用(*)在FIELD_FOLDER_PATH中獲取結果? 是因為我創建字段的方式嗎?

您應該使用通配符查詢來支持這種功能。 該鏈接將幫助:

http://lucene.apache.org/core/old_versioned_docs/versions/3_0_1/api/core/org/apache/lucene/search/WildcardQuery.html

因此,您應該做的就是創建兩個查詢,一個使用queryparser,另一個使用通配符查詢,然后在帶有“ SHOULD”子句的BooleanQuery中使用兩個查詢。

有關布爾查詢的詳細信息,請訪問此鏈接:

http://lucene.apache.org/core/old_versioned_docs/versions/3_0_2/api/core/org/apache/lucene/search/BooleanQuery.html

暫無
暫無

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

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