0

いくつかのxmlドキュメントがあります。ドキュメントの構造は次のようになります:-

<?xml version="1.0" encoding="UTF-8"?>
<patent-assignment>
  <assignment-record>
    <correspondent>
      <name>NORTH AMERICA INTERNATIONAL PATENT OFFIC</name>
      <address-1>P.O. BOX 506</address-1>
      <address-2>MERRIFIELD, VA 22116</address-2>
    </correspondent>
  </assignment-record>
  <patent-assignors>
    <patent-assignor>
      <assignor-name>TSAI, YU-WEN</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
    <patent-assignor>
      <assignor-name>HUANG, CHENG-I</name>
      <execution-date>
        <date>20050331</date>
      </execution-date>
    </patent-assignor>
  </patent-assignors>
  <patent-assignees>
    <patent-assignee>
      <assignee-name>FARADAY TECHNOLOGY CORP.</name>
      <address-1>NO.10-2, LI-HSIN ROAD 1, SCIENCE-BASED INDUSTRIAL PARK</address-1>
      <city>HSIN-CHU CITY</city>
      <country-name>TAIWAN</country-name>
    </patent-assignee>
  </patent-assignees>
</patent-assignment>

assignor-nameとにフィールドを作成しましたassignee-name。今、私はcts:searchこのようなクエリを実行しています:-

let $query:=cts:and-query((

    cts:element-query(xs:QName("assignor-name"), 
      cts:field-word-query("Assignor Name", "apple")),
    cts:element-query(xs:QName("assignee-name"), 
      cts:field-word-query("Assignee Name", "salix"))
  ))

for $x in cts:search(fn:doc(), $query)
return $x

ここで、AssignorNameとAssigneeNameは、私が作成したフィールドの名前です。そして、これらのフィールドにはassignor-nameassignee-nameそれぞれローカル名としてとがあります。しかし、このクエリを実行すると、空のシーケンスが表示されます。また、xmlドキュメントを確認しましたが、ドキュメントにassignor-name「apple」とassignee-name「salix」のデータが含まれていますが、結果が得られません。担当者名または担当者名に対してのみこのクエリを実行すると結果が得られますが、それらを組み合わせて実行すると結果がand-query得られませんでした。助けてください。

4

2 に答える 2

2

Dave が指摘した名前空間の問題に加えて、 と の組み合わせelement-queryfield-query珍しく、おそらく満足のいく結果にはつながらないでしょう。

このクエリでは、単純なcts:element-word-query要素を優先して両方を削除できます。

于 2012-05-18T15:38:45.480 に答える