Огранка значений XML-тегов

Я хочу выполнить фасетирование тегов xml и дополнительное фасетирование значений тегов, у меня есть документы xml, как показано ниже.

<TermiteJServiceResponse>
  <EntityTypeHit type="DRUG">
    <HitCollection>
      <Hit type="DRUG" id="CHEMBL1201288">
        <Name>Dantrolene</Name>
      </Hit>
      <Hit type="DRUG" id="CHEMBL286398">
        <Name>Propylene Glycol</Name>
      </Hit>
      <Hit type="DRUG" id="GXC376D7F8C0E7A0C3787E8A2384DC56E80">
        <Name>PEG400</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="COMPOUNDS">
    <HitCollection>
      <Hit type="COMPOUNDS" id="A-409912.5">
        <Name>A-409912.5</Name>
      </Hit>
      <Hit type="COMPOUNDS" id="A-409912">
        <Name>A-409912</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="GENE">
    <HitCollection>
      <Hit type="GENE" id="TRH">
        <Name>thyrotropin-releasing hormone</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="BIOPROC">
    <HitCollection>
      <Hit type="BIOPROC" id="BP70302">
        <Name>infusion</Name>
      </Hit>
      <Hit type="BIOPROC" id="D009200">
        <Name>Myocardial Contraction</Name>
      </Hit>
      <Hit type="BIOPROC" id="BP70198">
        <Name>cmax values</Name>
      </Hit>
      <Hit type="BIOPROC" id="D001835">
        <Name>Body Weight</Name>
      </Hit>
      <Hit type="BIOPROC" id="D062186">
        <Name>Arterial Pressure</Name>
      </Hit>
      <Hit type="BIOPROC" id="BP70209">
        <Name>contractility</Name>
      </Hit>
      <Hit type="BIOPROC" id="D006339">
        <Name>Heart Rate</Name>
      </Hit>
      <Hit type="BIOPROC" id="BP70316">
        <Name>intravenal</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>
  <EntityTypeHit type="SPECIES">
    <HitCollection>
      <Hit type="SPECIES" id="D051381">
        <Name>Rats</Name>
      </Hit>
    </HitCollection>
  </EntityTypeHit>

</TermiteJServiceResponse>

Я хотел бы фасетировать на основе вышеуказанного документа НАРКОТИКИ и подфасет по названиям лекарств и аналогичным образом Соединения и подфасет по названию соединения


person Ravi    schedule 21.03.2016    source источник


Ответы (1)


Обратитесь к Руководству разработчика поиска MarkLogic по теме "Ограниченный поиск и фасетная навигация".

Используя API поиска, вы можете определять ограничения и фасеты (тип ограничения) с помощью элемента <search:options>. Для каждого аспекта вам нужно будет определить индекс диапазона. В идеале вы должны использовать элементы с семантическими именами (<DRUG> вместо <Hit type="DRUG">) для упрощения индексации; однако, если эта схема не является гибкой, вы можете определить индекс диапазона пути поверх //Hit[type="DRUG"] и ссылаться это в ваших параметрах поиска, например:

<constraint name="Drug">
  <range type="xs:string" facet="true">
    <path-index>
      //Hit[type="DRUG"]
    </path-index>
  </range>
</constraint>

Когда вы вызываете API поиска с помощью search:search или search:resolve, он возвращает элемент search:response, содержащий результаты (сниппеты) и ограничения или значения аспектов, которые вы определили в <search:options>.

person wst    schedule 21.03.2016