java - 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']
?
解决方案
例如对于数组 ['a','b','c'] 是否可以返回类似 ['b','c','a'] 的东西?
这取决于您的查询或您如何从 lucene 中检索数据。AFAIK Lucene 记录有一个内部索引,它或多或少是每个添加文档的增量。这不是一个很好的指标来找出哪个是首先创建的,因为在 lucene 上实际上是在删除 -> 插入操作中更新记录。
如果您想获得某种订单,您应该添加一个带有时间戳或自组织索引的附加字段(我个人不推荐)。
排序和排序在这里是一个相关的事情。您应该在这里查看一个简单的示例:https ://www.tutorialspoint.com/lucene/lucene_sorting.htm
推荐阅读
- html - 步进进度条
- api - 如何在 Nunit 测试(ASP.NET Core 项目,Visual Code)中只制作一个没有“程序定义了多个入口点”的 Main 方法
- python - 发送请求失败:只有 unicode 对象是可转义的。没有类型
- node.js - 有没有办法在 AWS CodeBuild 托管映像中升级 nodejs 10?
- rust - 在 Rust 中使用泛型时解决冲突 trait 实现的策略?
- racket - Racket 的评估顺序有多确定?
- xslt - XSLT - 多输入 XML,多输出 XML
- r - R中的正则表达式:拆分字符串并提取数字
- java - 从 JSON 字符串中的任何位置删除键而不进行反序列化
- javascript - 有人能发现问题吗?只有第一个选项适用于选择