我使用search:search
來檢索相當大的一組數據(0.5K到3K)來繪製一些圖表,並且還使用搜索API中的方面好處來允許最終用戶對數據集進行分面過濾,然後動態重建圖表。從數據庫中獲取數據並將數據提取到客戶端Web應用會花費大約5-10秒的時間(當數據集較小時減少),這對最終用戶來說並不令人愉快。我知道這是一個概念性問題,允許用戶輕鬆塑造被繪製的數據和這個過程的速度之間的平衡/妥協,但是,請大家非常感謝任何幫助/提示。謝謝!提高搜索速度性能的提示:搜索結果檢索?
PS:我使用search:parse
,然後將查詢傳遞給cts:query
嘗試提出了這樣的錯誤:[1.0-ml] XDMP-NONMIXEDCOMPLEXCONT: fn:data(<cts:and-query qtextjoin="AND" strength="20" qtextgroup="()" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cts="http://marklogic.com/cts"><cts:element-range-query qtextpre="Jaar:" qtextref="cts:annotati...</cts:and-query>) -- Node has complex type with non-mixed complex content
選項:
<search:options xmlns:search="http://marklogic.com/appservices/search">
<search:search-option>filtered</search:search-option>
<search:page-length>3050</search:page-length>
<search:term apply="term">
<search:empty apply="all-results"/>
<search:term-option>punctuation-insensitive</search:term-option>
<search:term-option>unstemmed</search:term-option>
</search:term>
<search:grammar>
<search:quotation>"</search:quotation>
<search:implicit>
<cts:and-query strength="20" xmlns:cts="http://marklogic.com/cts"/>
</search:implicit>
<search:starter strength="30" apply="grouping" delimiter=")">(</search:starter>
<search:starter strength="40" apply="prefix" element="cts:not-query">-</search:starter>
<search:joiner strength="10" apply="infix" element="cts:or-query" tokenize="word">OR</search:joiner>
<search:joiner strength="20" apply="infix" element="cts:and-query" tokenize="word">AND</search:joiner>
<search:joiner strength="30" apply="infix" element="cts:near-query" tokenize="word">NEAR</search:joiner>
<search:joiner strength="30" apply="near2" consume="2" element="cts:near-query">NEAR/</search:joiner>
<search:joiner strength="50" apply="constraint">:</search:joiner>
<search:joiner strength="50" apply="constraint" compare="LT" tokenize="word">LT</search:joiner>
<search:joiner strength="50" apply="constraint" compare="LE" tokenize="word">LE</search:joiner>
<search:joiner strength="50" apply="constraint" compare="GT" tokenize="word">GT</search:joiner>
<search:joiner strength="50" apply="constraint" compare="GE" tokenize="word">GE</search:joiner>
<search:joiner strength="50" apply="constraint" compare="NE" tokenize="word">NE</search:joiner>
</search:grammar>
<search:additional-query>
<cts:not-query xmlns:cts="http://marklogic.com/cts">
<cts:or-query>
<cts:collection-query>
<cts:uri>All_Intakes</cts:uri>
<cts:uri>Reports</cts:uri>
</cts:collection-query>
<cts:element-query>
<cts:element xmlns:sem="http://marklogic.com/semantics">sem:triples</cts:element>
<cts:or-query/>
</cts:element-query>
</cts:or-query>
</cts:not-query>
</search:additional-query>
<search:debug>false</search:debug>
<search:extract-metadata>
<search:qname elem-name="USER_EI"/>
<search:qname elem-name="Customer"/>
<search:qname elem-name="TOTALAMOUNTTENANTEI"/>
<search:qname elem-name="TOTALAMOUNTTENANTEI2"/>
<search:constraint-value ref="Medewerker"/>
<search:constraint-value ref="Klant"/>
<search:constraint-value ref="TOTALAMOUNTTENANTEI"/>
<search:constraint-value ref="TOTALAMOUNTTENANTEI2"/>
</search:extract-metadata>
<search:transform-results apply="snippet"/>
<search:constraint name="Klant">
<search:range type="xs:string" collation="http://marklogic.com/collation/">
<search:element name="Customer"/>
</search:range>
</search:constraint>
<search:constraint name="Medewerker">
<search:range type="xs:string" collation="http://marklogic.com/collation/">
<search:element name="USER_EI"/>
</search:range>
</search:constraint>
<search:constraint name="Jaar">
<search:range type="xs:int">
<search:element name="Operation_Year"/>
</search:range>
</search:constraint>
<search:constraint name="Kwartaal">
<search:range type="xs:int">
<search:element name="Operation_Quarter"/>
</search:range>
</search:constraint>
<search:return-metrics>true</search:return-metrics>
<search:return-qtext>true</search:return-qtext>
<search:return-query>false</search:return-query>
<search:return-results>true</search:return-results>
<search:return-similar>false</search:return-similar>
<search:sort-order direction="descending">
<search:score/>
<search:annotation>Relevancy (Desc)</search:annotation>
</search:sort-order>
</search:options>;
嗨Lenti ...你可以發佈你使用的搜索API選項嗎?另外,你使用的是什麼版本的MarkLogic? –
在我的開發機器上,我使用ML 7,並在公共測試服務器上升級到ML 8. –