0

処理のために Solr に (再) インポートされる検索クエリ情報を含む XML スキーマを定義している最中です。クエリの結果のために保存したい側面の 1 つは、それらが訪問されたかどうか、訪問された場合はどのくらいの時間かということです。ここで、このデータを構造内で定義する最善の方法を考えています。「結果」要素の属性を使用するか、オプションの子要素を追加して、クリック時にすべての情報を保持することができます。

属性付き:

<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>

最後に、この質問に従って:

<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 に作成するので、最も効率的な構造はどのようなものになるのだろうかと考えています。これらの違いは、情報をデータベースまたはインデックスにロードする前の変換プロセスに顕著な影響を与えるでしょうか?

4

1 に答える 1

1

私は個人的に属性に行きます、理由は

  • 要素がクリケットであったかどうかは常に明確になります(「指定しない場合、Aと仮定する」などのロジックは、私が決して好きではなかったものです)
  • 要素がアクセスされたかどうかに関係なく、xml は常に同じ構造を持ちます。これは大したことではないように見えるかもしれませんが、解析が容易になり、エラーが発生しにくくなります。
  • 新しいタグを追加するよりも属性を追加する方が安価であるため、スペースを節約できますが、要素がクリックされる頻度に依存するため、常にそうとは限りません。
于 2013-04-19T07:26:59.397 に答える