gpt4 book ai didi

java - 索引 Lucene : How to get PointValues terms for LongPoint field

转载 作者:行者123 更新时间:2023-12-02 11:07:58 25 4
gpt4 key购买 nike

我正在寻找如何通过字段名称获取索引 PointValues 术语的解决方案。对于字符串来说,它非常简单(我的示例代码):

    IndexReader reader = caseIndexer.getIndexReader();

Fields fields = MultiFields.getFields(reader);
Iterator<String> names = fields.iterator();
Map<String, Terms> map = new HashMap<>();
while (names.hasNext()) {
String name = names.next();
// logger.info("->>fieldName: {}", name);
Terms terms = fields.terms(name);
map.put(name, terms);
TermsEnum termsEnum = terms.iterator();
BytesRef text;
while ((text = termsEnum.next()) != null) {
System.out.println("field=" + name + "; text=" + text.utf8ToString());
}
}

我知道如何获取简单的统计信息,例如最大值和最小值(示例代码):

    List<FieldInfo> allFields = new ArrayList<>();
for (LeafReaderContext ctx : reader.leaves()) {
LeafReader lr = ctx.reader();
Iterator<FieldInfo> infos = lr.getFieldInfos().iterator();
PointValues values = lr.getPointValues();
while (infos.hasNext()) {
FieldInfo info = infos.next();
allFields.add(info);

if (DocValuesType.SORTED_NUMERIC.equals(info.getDocValuesType())) {

final int numDimensions = values.getNumDimensions(info.name);
final int numBytesPerDimension = values.getBytesPerDimension(info.name);
byte[] leafMinValue = values.getMinPackedValue(info.name);
long size = values.size(info.name);
byte[] leafMaxValue = values.getMaxPackedValue(info.name);
long minValueLong = NumericUtils.sortableBytesToLong(leafMinValue, 0);
long maxValueLong = NumericUtils.sortableBytesToLong(leafMaxValue, 0);
double minValueDouble = NumericUtils.sortableLongToDouble(minValueLong);
System.out.println("field=" + info.name + "; minValueLong=" + minValueLong + "; maxValueLong="
+ maxValueLong + "; minValueDouble=" + minValueDouble + "; numDimensions=" + numDimensions
+ "; numBytesPerDimension=" + numBytesPerDimension + "; size=" + size);

}
}

}

但是如何获得积分条件呢?

最佳答案

如果您需要获取 LongPoint 字段的原始值,您需要将该值存储到专用的 StoredField 中,如 LongPoint Field JavaDoc 中所述。 .

一般情况下:Point(范围/精确用例)和 DocValues(排序用例)字段用于特定的内部 lucene 使用,并且这些值不可用于搜索返回值。

关于java - 索引 Lucene : How to get PointValues terms for LongPoint field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50792930/

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