我正在使用开箱即用的ML REST API POST v1/search
,我使用transform?
参数来转换生成的结果。但我也想操纵发送到端点的字符串q
。是否有类似transform-query
或类似的东西将被调用以转换查询字符串。我知道我们可以编写一个自定义端点来执行此操作,但我想避免如果这可以在开箱即用的端点完成。
答案 0 :(得分:2)
虽然在/ v1 / search中不支持,但我认为这在中间层是合理的做法 - 例如REST API之上的Java或NodeJS层。
答案 1 :(得分:1)
你是对的。目前,不支持对查询输入进行转换以执行查询扩展和其他查询操作。
资源服务扩展将是当前推荐的方法,使用修改后的查询调用cts:parse()/ cts:search()/ search:resolve()或search:search()。
希望有帮助,
答案 2 :(得分:1)
如果你想要做的是通过添加搜索条件(而不是修改字符串查询)来表达,你可以使用/ v1 / search的组合查询将原始字符串查询与表达附加标准。
答案 3 :(得分:0)
我所做的是写了一个处理转换查询的自定义Web服务,但我也喜欢开箱即用的api所做的所有参数,所以我复制了开箱即用的xquery代码。以下是我的所作所为。就我而言,我只是在进行查询扩展
let $search:= map:get($params,"q")
let $qexpand := repo-searchLib:queryExpand($search)
let $_ := map:put($params, "q", $qexpand)
let $headers := eput:get-request-headers()
let $env := eput:response-callback-map(eput:response-type-callback#1)
let $response := searchmodq:search-post($headers,$params, $env, xdmp:get-request-body(eput:get-content-format($headers,$params)))
let $has-matches := map:get($env, "has-matches")
return
if (exists($response)) then $response
else if ($has-matches) then ()
else xdmp:set-response-code(404,"Not Found")
你们中有人认为可能会遗漏某些东西吗?目前这似乎对我有用。