2017-06-26 24 views
1

私のJSONドキュメントは、次のようになりながら:私は実行するとCTS:検索および検索:検索JSONドキュメントを扱う

{ 
    "directions": ["Heat oil in heavy... "], 
    "rating": 5, 
    "title": "Mahi-Mahi in Tomato Olive Sauce", 
    "ingredients": [ 
    "2 tablespoons extra-virgin olive oil", 
    "1 cup chopped onion", 
    "1 cup dry white wine", 
    "1 teaspoon anchovy paste", 
    ], 
    "sodium": null 
} 

cts:search(fn:doc(),"anchovy")/title/string() 

私が取得:Mahi-Mahi in Tomato Olive Sauce、望まれています。

しかし、私は実行すると:

search:search("anchovy", $options)/search:result/title/string() 

私は空のシーケンスを取得します。注:私はtransform-results = "raw"を設定しました。

P.S私は、search:search("anchovy", $options)/search:resultがjsonではなくテキスト形式であるように見えることを確認しました。

この場合、search:searchを使用して希望の結果を得ることは可能ですか?

答えて

2

これは、ジョブを実行する必要があります。

import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy"; 

declare variable $options := <options xmlns="http://marklogic.com/appservices/search"><transform-results apply="raw" /><extract-metadata> 
     <json-property>title</json-property> 
    </extract-metadata></options>; 

search:search("anchovy", $options)//title/text() 

ここでは、文書から抽出し、結果セットの中に置かれるようにJSONのプロパティを指定しています。

JSONドキュメントで多くの作業を行っている場合は、ServerSide JavaScriptを参照してください。その場合は、jsearchも利用できます。

+0

Tamasさん、ありがとう、うまくいきました。 – Yash

関連する問題