Могу ли я разделить значение между несколькими полями в Lucene? - PullRequest
0 голосов
/ 08 марта 2011

Мне интересно, возможно ли добавить значение в несколько полей одновременно в Lucene, чтобы мне не приходилось копировать значение в несколько полей и тратить место без необходимости.

Например, предположим, у меня есть запись, представляющая книгу, и у меня есть несколько источников для краткого изложения книги, возможно, Wikipedia, Amazon, Библиотека Конгресса. Предположим, у меня есть определенное поле в индексе для хранения каждого из них, например, "summary.wikipedia" и т. д.

В то же время я хочу, чтобы имя поля general называлось просто "summary", и я мог установить одно из конкретных резюме, чтобы запросы по индексу могли просто искать в "summary" поле и не нужно указывать, какое резюме они хотят искать.

Что я хочу сделать, это указать несколько идентификаторов полей при добавлении поля, чтобы значение можно было использовать в этих полях без репликации данных и траты места.

например:.

document.AddField( new string[] { "summary.wikipedia", "summary" }, "Summary of the book...", ... );

Есть ли шанс, что это возможно? Или мне просто нужно дважды добавить поле с одинаковыми данными, но с другим именем поля?

1 Ответ

2 голосов
/ 08 марта 2011

Нет способа сделать это в Lucene. Как вы указали в своем комментарии, вы всегда можете сделать общее сводное поле индексированным, но не сохраненным полем. Затем вы можете добавить еще одно поле с именем "summary_source", в котором будет указано, из какого поля получена сводка.

...