2017-04-23 75 views
0

因此,我有一个由lucene(Java)创建的索引。 我想搜索索引如下无法从lucene索引中读取字段内容

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的Luke(基于GUI的检测工具)和字段名检查似乎是确定,内容绝对不是null

我不知道可能是什么原因..任何建议?

PS:索引和搜索使用相同的lucene版本(6.2.1)

+0

你指定的搜索请求字段的任何名单? –

+0

@DarshanMehta根本没有 –

+0

你能不能展示索引代码的相关部分? –

回答

0

性能佳,你没有提供足够的信息来确定,但我敢打赌那场ISN”存储。例如,如果您使用的是TextField,并且使用ReaderTokenStream作为源,则该字段将不会被存储,并且可以被搜索,但是您将无法检索该字段。

你可以做一个文本字段存储的,如:

Field titleField = new TextField("title", "The Sun Also Rises", Field.Store.YES);