MarkLogic 搜索建议 Java API
MarkLogic Search Suggest with Java API
我正在尝试为我正在构建的应用程序实施搜索建议。我尝试按照指南 found here.
我修改了一些东西以使用我的数据库。我的选项现在看起来像这样:
String options =
<options xmlns="http://marklogic.com/appservices/search">
<default-suggestion-source>
<range type="xs:string" facet="true">" +
<element ns="http://marklogic.com/xdmp/dls" name="content"/>
</range>
</default-suggestion-source>
</options>;
名字"content"是我要搜索的XML元素的名字,是我不确定的命名空间,所以我只是复制了默认范围内的命名空间我的数据库中已有索引。
我的索引是这样的:
我的Java代码如下:
StringHandle handle = new StringHandle(options);
QueryManager queryManager = client.newQueryManager();
QueryOptionsManager optMgr = client.newServerConfigManager().newQueryOptionsManager();
optMgr.writeOptions("opt-suggest", handle);
SuggestDefinition suggestionDef = queryManager.newSuggestDefinition();
suggestionDef.setLimit(10);
suggestionDef.setStringCriteria(text);
suggestionDef.setOptionsName("opt-suggest");
String[] suggestions = queryManager.suggest(suggestionDef);
将选项名称设置为我添加的建议 def 的行,因为它不在教程中。
每次搜索returns一个空集。是因为我的命名空间吗?或者我错过了什么? FWIW 我已经尝试 运行 使用显示的命名空间和空白命名空间。
编辑: 示例文档:
<Article doctype="article>
<title>Some Name here</title>
<content>
<content type="paragraph">
<value>Some text</value>
</content>
<content type="paragraph">
<value>More text</value>
</content>
</content>
</Article
有效! Sam Mefford 在控制台中关于 运行 的评论让我意识到它实际上会 return 结果,只是不是我的搜索字符串。我在搜索文本周围添加了一些通配符,现在可以使用了;在调整我的索引和选项以搜索正确的 XML 元素并将命名空间留空之后。
我正在尝试为我正在构建的应用程序实施搜索建议。我尝试按照指南 found here.
我修改了一些东西以使用我的数据库。我的选项现在看起来像这样:
String options =
<options xmlns="http://marklogic.com/appservices/search">
<default-suggestion-source>
<range type="xs:string" facet="true">" +
<element ns="http://marklogic.com/xdmp/dls" name="content"/>
</range>
</default-suggestion-source>
</options>;
名字"content"是我要搜索的XML元素的名字,是我不确定的命名空间,所以我只是复制了默认范围内的命名空间我的数据库中已有索引。
我的索引是这样的:
我的Java代码如下:
StringHandle handle = new StringHandle(options);
QueryManager queryManager = client.newQueryManager();
QueryOptionsManager optMgr = client.newServerConfigManager().newQueryOptionsManager();
optMgr.writeOptions("opt-suggest", handle);
SuggestDefinition suggestionDef = queryManager.newSuggestDefinition();
suggestionDef.setLimit(10);
suggestionDef.setStringCriteria(text);
suggestionDef.setOptionsName("opt-suggest");
String[] suggestions = queryManager.suggest(suggestionDef);
将选项名称设置为我添加的建议 def 的行,因为它不在教程中。 每次搜索returns一个空集。是因为我的命名空间吗?或者我错过了什么? FWIW 我已经尝试 运行 使用显示的命名空间和空白命名空间。
编辑: 示例文档:
<Article doctype="article>
<title>Some Name here</title>
<content>
<content type="paragraph">
<value>Some text</value>
</content>
<content type="paragraph">
<value>More text</value>
</content>
</content>
</Article
有效! Sam Mefford 在控制台中关于 运行 的评论让我意识到它实际上会 return 结果,只是不是我的搜索字符串。我在搜索文本周围添加了一些通配符,现在可以使用了;在调整我的索引和选项以搜索正确的 XML 元素并将命名空间留空之后。