这是我从LucenePDFDocument
获取详细信息的方式:
doc = LucenePDFDocument.getDocument(file);
System.out.println("field list: \n" + doc.getFields());
这是输出:
field list:
[<stored<path:D:\Kuliah\rancangan document indexing\dir-pdf\dua.pdf>,
stored<url:D:/Kuliah/rancangan document indexing/dir-pdf/dua.pdf>,
stored,indexed,omitNorms,indexOptions=DOCS<modified:20170307220729>,
indexed,tokenized<uid:D Kuliah rancangan document indexing dir-pdf dua.pdf 20170307220729>,
indexed,tokenized<contents:java.io.StringReader@4206a205>,
stored,indexed,tokenized<Author:Acer-2577>,
stored,indexed,tokenized<CreationDate:20150222074338>,
stored,indexed,tokenized<Creator:PDF24 Creator>,
stored,indexed,tokenized<ModificationDate:20150222074338>,
stored,indexed,tokenized<Producer:GPL Ghostscript 9.10>,
stored,indexed,tokenized<Title:Microsoft Word - Vol 10.1 bag ke 2a fix.doc>,
stored<summary:Jurnal Teknologi Informasi, Volume 10 Nomor 1, April ...>]
我想在“内容”字段中突出显示检索到的单词。突出显示需要存储的字段,但“内容”字段只是索引和标记化。我得到一个错误:“内容字段未存储”。
我应该怎么做才能使“内容”字段存储,标记化和编入索引? 应该编辑LucenePDFDocument.java?哪个部分?
答案 0 :(得分:2)
是的,内容字段已编入索引但未存储,这意味着它不会从搜索结果返回,但可以搜索,是的,这不会与荧光笔一起使用。
您需要修改LucenePDFDocument类以存储该字段。要做到这一点,只需将字符串而不是阅读器传递给addTextField调用:
String contents = writer.getBuffer().toString();
addTextField(document, "contents", contents);
你也应该删除&#34;摘要&#34;字段,因为如果您要存储完整内容,则不会需要它。