Я начинаю проект, в котором мы пытаемся проиндексировать содержимое XML-документов с помощью Lucene .Net.В небольшой документации, которую я нашел, кажется, что индексы могут состоять только из полей с одним строковым значением.Данные, которые я пытаюсь проиндексировать, немного сложнее, чем простые пары ключ-значение.
Вот пример XML-документа, из которого я хотел бы создать индекс:
<descriptor>
<asset guid="2AA7C8F9-2CB1-4A81-9421-C09F1D85939E" generated-date="2011-07-30" generated-by="hw/AutoMfg" generated-with="PMS">
<!-- information about where the asset can be used -->
<target>
<localization>en-us</localization>
<localization>es-us</localization>
<environment>desktop</environment>
<environment>mobile</environment>
</target>
<!-- all contents of an asset must have the same version -->
<version-information>
<version-number source="content">9.1.123.4</version-number>
<version-number source="manufacturing">9.1.123.4</version-number>
<release-label>9.1</release-label>
</version-information>
<!-- catalog information about the primary role of the asset -->
<role>
<namespace>parent.type.family.some.thing</namespace>
<mime-type>text/html</mime-type>
<hwid>abc1234</hwid>
</role>
</asset>
</descriptor>
Таким образом, я мог видеть поля создания, названные в честь дочерних элементов «дескриптора», но как насчетдочерние узлы там внутри?Как эти данные могут быть проиндексированы?Нужно ли создавать строку с разделителями для представления значений каждого поля?
например, поле: "Target" Значение: "localization: en-us; среда es-us: desktop; mobile | ...
Нужно ли выравнивать мои данные, как в моем примере выше, чтобы проиндексировать их?
Спасибо!