Java Can';t从lucene索引读取字段内容
所以我有一个由lucene(Java)创建的索引。 我正在尝试搜索索引,如下所示Java Can';t从lucene索引读取字段内容,java,indexing,lucene,Java,Indexing,Lucene,所以我有一个由lucene(Java)创建的索引。 我正在尝试搜索索引,如下所示 TopDocs result = searcher.search(query, maxResults); for (ScoreDoc scoreDoc : result.scoreDocs) { Document doc = searcher.doc(scoreDoc.doc); LogService.logger().warning("Title| " + doc.get("title"));
TopDocs result = searcher.search(query, maxResults);
for (ScoreDoc scoreDoc : result.scoreDocs) {
Document doc = searcher.doc(scoreDoc.doc);
LogService.logger().warning("Title| " + doc.get("title"));
LogService.logger().warning("URL| " + doc.get("url"));
代码打印url字段,但打印标题字段的null
我的第一个猜测是字段名可能有问题,或者内容实际上是空的
但是,我用Lucene(基于GUI的检查工具)仔细检查了一下,字段名似乎没有问题,内容肯定不是null
我不知道那是什么原因。。有什么建议吗
p.S:索引和搜索都是使用相同的lucene版本(6.2.1)执行的。好吧,您没有提供足够的信息来确定,但我敢打赌该字段没有存储。例如,如果您使用
文本字段
,并使用读取器
或令牌流
作为源,则该字段将不会被存储,并且可以搜索,但您将无法检索它
您可以将文本字段存储为:
Field titleField = new TextField("title", "The Sun Also Rises", Field.Store.YES);
嗯,您没有提供足够的信息来确定,但我敢打赌该字段没有存储。例如,如果您使用
文本字段
,并使用读取器
或令牌流
作为源,则该字段将不会被存储,并且可以搜索,但您将无法检索它
您可以将文本字段存储为:
Field titleField = new TextField("title", "The Sun Also Rises", Field.Store.YES);
您是否在搜索请求中指定任何字段列表?@DarshanMehta完全不可以显示索引代码的相关部分?您是否在搜索请求中指定任何字段列表?@DarshanMehta完全不可以显示索引代码的相关部分?