gpt4 book ai didi

java - 使用 Lucene 7.4.0 打印索引术语

转载 作者:行者123 更新时间:2023-11-30 06:03:30 26 4
gpt4 key购买 nike

我目前正在尝试打印使用 Lucene 7.4.0 生成的索引 IO 中的字段和术语,目前我有以下内容:

public static void main(String[] args) throws IOException {

String indexDir = "C:/directory/to/index";
index = FSDirectory.open(Paths.get(indexDir));

IndexReader reader = DirectoryReader.open(index);

Fields fields = MultiFields.getFields(reader);

for (String field : fields) {
System.out.println(field);
Terms terms = fields.terms(field);
TermsEnum termsEnum = terms.iterator();

//Term term = new Term(field);
int count = 0;
while (termsEnum.next() != null) {
System.out.println(termsEnum.term().utf8ToString());
count++;
}
System.out.println(count);
}

目前,这给了我一长串按字母顺序排列的胡言乱语

3ñúä
3ñúæ
3ñúè
3ñúë
3ñúëµ
3ñúðéë
3ñúò
3ñúú
3ñû
3ñû5

我也尝试使用 term.text() ,但尽管它会打印正确的行数,但每个条目都是空白的。我觉得我很接近,但缺少一些小东西

最佳答案

就像我认为我使问题过于复杂化一样。

这些奇怪的值是因为实际字段或多或少是“空”而引起的(看起来是空白但不是 NULL)。

作为手头问题的答案,我试图以错误的方式从字段获取条款,而更简单的方法是加载文档并从那里询问我想要的字段

StringBuilder concat = new StringBuilder();

IndexReader reader = DirectoryReader.open(directory);

concat.append("Path , Parent \n" );
for( int i = 0; i <reader.maxDoc(); i++) {
Document doc = reader.document(i);

String docPath = doc.get("path");
String docParent = doc.get("Parent");

concat.append(docPath + "," + docParent + "\n");

}

注意:我使用的是 StringBuilder,因为我还将这些数据导出到 .csv

关于java - 使用 Lucene 7.4.0 打印索引术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51816187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com