2013-07-24 15 views
5

Belirli bir öğe üzerinde arama yapmaya çalışıyorum, bu nedenle seçeneklerim arasında aranabilir bir ifadem var. Ayrıca, bu öğenin değerlerine göre sıralamak istiyorum, bu yüzden değer öğesinde bir öğe aralığı dizini oluşturdum. İşte benim arama seçenekleri umarım net şeyler yapar şunlardır:MarkLogic Search API - Aranabilir ifade ile aynı öğede sıralama düzeni nasıl yapılır

<options xmlns="http://marklogic.com/appservices/search"> 
     <term> 
      <term-option>case-insensitive</term-option> 
     </term> 
     <debug>true</debug> 
     <searchable-expression>/summary/name/value</searchable-expression> 
     <sort-order type="xs:string" direction="ascending"> 
      <element ns="" name="value"/> 
      <annotation>options for search institutions by name</annotation> 
     </sort-order> 
</options> 

sorun başka değer düğümünü ekler tür yaptığında (arama Alındığı: Rapor id = "ARAMA-FLWOR") olmasıdır

...order by xs:string(($result//value)[1]) ascending return $result)[1 to 50] 

yerine:

...order by xs:string(($result)[1]) ascending return $result)[1 to 50] 

bunu nasıl yapıyor engellerim? Aranabilir ifadeyi, "isim" öğesiyle karşılaştırmak istemediğim başka bir alt öğe olarak değiştiremiyorum. Ayrıca sıralama düzeni öğesi adını boş bırakamaz veya geçerli düğüme atamam. Bu basit olurdu, ama bu çalışmayı elde etmek için hiçbir şey bulamadım.

Yardım çok takdir edilecektir.

cevap

4

Sen aranabilir ifade hedef unsuru olarak <name> kullanabilirsiniz, ancak sadece bir <additional-query> ekleyerek içine <value> bakmak sonra sorguyu kısıtlamak: Ek bir-sorgu kullanma

<options xmlns="http://marklogic.com/appservices/search"> 
     <term> 
      <term-option>case-insensitive</term-option> 
     </term> 
     <debug>true</debug> 
     <searchable-expression>/summary/name</searchable-expression> 
     <additional-query> 
      <cts:element-query xmlns:cts="http://marklogic.com/cts"> 
      <cts:element>value</cts:element> 
      <cts:and-query/> 
      </cts:element-query> 
     </additional-query> 
     <sort-order type="xs:string" direction="ascending"> 
      <element ns="" name="value"/> 
      <annotation>options for search institutions by name</annotation> 
     </sort-order> 
</options> 
+0

işi gibi görünüyor. Önerin için teşekkürler. – Francium123

İlgili konular