Marklogic 基于XML标记值的刻面

Marklogic 基于XML标记值的刻面,marklogic,marklogic-8,Marklogic,Marklogic 8,我想在xml标记上做刻面,在标记值上做子刻面,我有一个xml文档,如下所示 <TermiteJServiceResponse> <EntityTypeHit type="DRUG"> <HitCollection> <Hit type="DRUG" id="CHEMBL1201288"> <Name>Dantrolene</Name> </Hit>

我想在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>

丹特罗琳
丙二醇
PEG400
A-409912.5
A-409912
促甲状腺激素释放激素
灌输
心肌收缩
cmax值
体重
动脉压
收缩力
心率
静脉注射
纳特群岛

我想基于上述文档中药物的方面和药物名称的子方面,以及类似的化合物和化合物名称的子方面

来看看关于“”的MarkLogic Search开发者指南

使用搜索API,您可以使用
元素定义约束和面(约束的一种类型)。对于每个方面,您需要定义一个范围索引。理想情况下,您可以使用语义命名的元素(
而不是
)来简化索引;但是,如果此模式不灵活,则可以跳过
//点击[type=“druge”]
,并在搜索选项中引用它,如:

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

//点击[type=“DRUG”]
当您使用
Search:Search
Search:resolve
调用Search API时,它将返回一个
Search:response
元素,其中包含您在
中定义的结果(片段)和约束或方面值