Я в процессе определения XML-схемы, которая будет содержать информацию поискового запроса, которая будет (повторно) импортирована в Solr для обработки. Одним из аспектов, которые я хочу сохранить для результатов запроса, является вопрос о том, были ли они посещены и если да, то как долго. Теперь мне интересно, как лучше всего определить эти данные в моей структуре, я могу либо использовать атрибут для элемента «result», либо добавить дополнительный дочерний элемент для хранения всей информации одним щелчком мыши.Необязательный элемент или логический атрибут
С атрибутом:
<result index="1" clicked="true">
<timeViewed>45.21</timeViewed>
<title>Alpha</title>
</result>
<result index="2" clicked="false">
<title>Beta</title>
</result>
С дочернего элемента:
<result index="1">
<clickInfo timeViewed="45.21"/>
<title>Alpha</title>
</result>
<result index="2">
<title>Beta</title>
</result>
Наконец, в соответствии с this question:
<result index="1">
<clicked timeViewed="45.21">true</clicked>
<title>Alpha</title>
</result>
<result index="2">
<clicked>false</clicked>
<title>Beta</title>
</result>
Как я буду индексации больших объемов эти XML-файлы в Solr и, возможно, MongoDB. Мне интересно, какая наиболее эффективная структура быть. Разве эти различия даже окажут заметное влияние на процесс преобразования до загрузки информации в базу данных или индекс?
Убедительные аргументы. Я согласен с тем, что лучше не полагаться на необязательные элементы для булевых значений, поскольку это увеличит сложность синтаксического анализа и сделает вещи менее структурированными и прозрачными. – Lilienthal