是否可以获得默认搜索语法的 XML 副本?
Is it possible to get an XML copy of the default search grammar?
我正在做 MarkLogic 搜索应用程序的翻译版本,我想翻译搜索语法(AND、OR 等)。我目前只使用默认运算符,我意识到它们是 documented,但是有什么方法可以用 XML 或 JSON 格式获取它?
检索默认搜索选项的端点只有 returns 极少数元素,其中 <grammar>
不是一个:
https://server:port/v1/config/query/default/
我尝试获取子元素本身:
https://server:port/v1/config/query/default/grammar
但我回来了
RESTAPI-NODOCUMENT: (err:FOER0000) Resource or document does not exist: category: options message: Child of options node at 'default/grammar' not found
查看 MarkLogic 安装文件,在 MarkLogic/Modules/MarkLogic/appservices/search/search-impl.xqy
您将在 $default-options
:
中找到默认语法
<search:grammar>
<search:quotation>"</search:quotation>
<search:implicit><cts:and-query strength="20"/></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="32" apply="boost" element="cts:boost-query" tokenize="word">BOOST</search:joiner>
<search:joiner strength="35" apply="not-in" element="cts:not-in-query" tokenize="word">NOT_IN</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:get-default-options()
然后使用 XPath 到 search:grammar:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
search:get-default-options()/search:grammar
我正在做 MarkLogic 搜索应用程序的翻译版本,我想翻译搜索语法(AND、OR 等)。我目前只使用默认运算符,我意识到它们是 documented,但是有什么方法可以用 XML 或 JSON 格式获取它?
检索默认搜索选项的端点只有 returns 极少数元素,其中 <grammar>
不是一个:
https://server:port/v1/config/query/default/
我尝试获取子元素本身:
https://server:port/v1/config/query/default/grammar
但我回来了
RESTAPI-NODOCUMENT: (err:FOER0000) Resource or document does not exist: category: options message: Child of options node at 'default/grammar' not found
查看 MarkLogic 安装文件,在 MarkLogic/Modules/MarkLogic/appservices/search/search-impl.xqy
您将在 $default-options
:
<search:grammar>
<search:quotation>"</search:quotation>
<search:implicit><cts:and-query strength="20"/></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="32" apply="boost" element="cts:boost-query" tokenize="word">BOOST</search:joiner>
<search:joiner strength="35" apply="not-in" element="cts:not-in-query" tokenize="word">NOT_IN</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:get-default-options()
然后使用 XPath 到 search:grammar:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
search:get-default-options()/search:grammar