首页 > 解决方案 > Lucene以相同的顺序存储和检索数组

问题描述

如果我将数组存储在这样的文档中

for (int i=0; i<vars.length; i++ {
    Field field = new StringField("vars", vars[i], Field.Store.YES);
    doc.add(field);
}

当我阅读文档的字段vars时,我能否按照插入的顺序获取值?

例如对于一个数组['a','b','c']是否可以返回类似的东西['b','c','a']

标签: javalucene

解决方案


例如对于数组 ['a','b','c'] 是否可以返回类似 ['b','c','a'] 的东西?

这取决于您的查询或您如何从 lucene 中检索数据。AFAIK Lucene 记录有一个内部索引,它或多或少是每个添加文档的增量。这不是一个很好的指标来找出哪个是首先创建的,因为在 lucene 上实际上是在删除 -> 插入操作中更新记录。

如果您想获得某种订单,您应该添加一个带有时间戳或自组织索引的附加字段(我个人不推荐)。

排序和排序在这里是一个相关的事情。您应该在这里查看一个简单的示例:https ://www.tutorialspoint.com/lucene/lucene_sorting.htm


推荐阅读