Я пришел к тому, что мне нужно хранить некоторые дополнительные данные о происхождении определенного поля в моем индексе Lucene.Net.В частности, я хочу прикрепить направляющую к определенным полям документа, когда поле добавляется в документ, и извлекать его снова, когда я получаю документ из результата поиска.
Возможно ли это?
Редактировать: Хорошо, позвольте мне немного пояснить, приведя пример.
Допустим, у меня есть объект, который я хочу позволить пользователю помечать с помощью пользовательских тегов, таких как "персональный"."," любимый "," какой-то проект ".Я делаю это, добавляя несколько полей «тега» в документ, например, так:
doc.Add( new Field( "tag", "personal" ) );
doc.Add( new Field( "tag", "favorite" ) );
Проблема в том, что теперь мне нужно записать некоторые метаданные о каждом отдельном теге, в частности, руководство, представляющее, где этот тегпришел (представьте это как идентификатор пользователя).У каждого тега может быть свой guid, поэтому я не могу просто создать поле «tag-guid» (, если порядок значений не сохранен - см. Правку 2 ниже).Мне не нужно, чтобы эти метаданные были проиндексированы (и на самом деле я бы предпочел, чтобы их не было, чтобы избежать попадания в метаданные), мне просто нужно иметь возможность снова извлечь их из документа / поля.
doc.GetFields( "tag" )[0].Metadata...
(здесь я составляю синтаксис, но надеюсь, что моя точка зрения ясна сейчас.)
Редактировать 2: Поскольку это совершенно другой вопросЯ отправил новый вопрос для этого подхода: Является ли порядок многозначных полей в Lucene стабильным?
Хорошо, давайте попробуем другой подход ... Ключевая проблемаПлощадь - это неопределенность множества значений полей под одним и тем же именем поля (например, «тег»).Если бы я мог ввести или получить какую-то определенность здесь, я мог бы сохранить метаданные в другом поле.
Например, если бы я мог положиться на порядок значений полей, никогда не меняющихся, яможет использовать индекс в наборе значений, чтобы точно определить, на какой тег я ссылаюсь.
Есть ли гарантия, что порядок добавления значений в поле останется неизменным, когда я получу документ впозже?