2013-04-19 7 views
0

Я в процессе определения 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. Мне интересно, какая наиболее эффективная структура быть. Разве эти различия даже окажут заметное влияние на процесс преобразования до загрузки информации в базу данных или индекс?

ответ

1

Я бы лично пойти на атрибуте, причины

  • Это делает всегда ясно, был ли элемент clicket или нет (логика, как «если я не указать, то предположим А» что-то я никогда не понравилось)
  • xml всегда имеет одинаковую структуру, если элемент был посещен или нет, это может показаться не большим делом, но делает анализ более легким и менее подверженным ошибкам.
  • Вы можете сэкономить место как дешевле добавить атрибут, а не новый тег, но это может быть не всегда так, поскольку это будет зависеть от того, насколько часто элементы нажмите.
+0

Убедительные аргументы. Я согласен с тем, что лучше не полагаться на необязательные элементы для булевых значений, поскольку это увеличит сложность синтаксического анализа и сделает вещи менее структурированными и прозрачными. – Lilienthal

Смежные вопросы