[英]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中获取结果? 是因为我创建字段的方式吗?
您应该使用通配符查询来支持这种功能。 该链接将帮助:
因此,您应该做的就是创建两个查询,一个使用queryparser,另一个使用通配符查询,然后在带有“ SHOULD”子句的BooleanQuery中使用两个查询。
有关布尔查询的详细信息,请访问此链接:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.