Lucene хранит и извлекает массив в том же порядке - PullRequest
0 голосов
/ 07 мая 2018

Если я сохраню массив в документе, подобном этому

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']?

1 Ответ

0 голосов
/ 08 мая 2018

Например, для массива ['a', 'b', 'c'] возможно ли вернуть что-то вроде ['b', 'c', 'a']?

Это зависит от вашего запроса или от того, как вы получаете данные из lucene. AFAIK Записи Lucene имеют внутренний индекс, который является более или менее приращением для каждого добавленного документа. Это не очень хороший показатель, чтобы узнать, который был создан первым, потому что в lucene обновление записи фактически выполняется операцией удаления -> вставки.

Если вы хотите выполнить какой-либо заказ, вам следует добавить дополнительное поле с отметкой времени или самоорганизованным индексом (который я лично не рекомендую).

Заказ и сортировка здесь важны. Вы должны взглянуть здесь для простого примера: https://www.tutorialspoint.com/lucene/lucene_sorting.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...