首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marklogic字段搜索选项

Marklogic字段搜索选项
EN

Stack Overflow用户
提问于 2017-03-30 14:19:58
回答 1查看 126关注 0票数 1

我有如下的搜索选项

代码语言:javascript
复制
let $options :=
 <options xmlns="http://marklogic.com/appservices/search">
    <constraint name="collection">
        <collection prefix=""/>
    </constraint>
    <constraint name="concept_name">
        <word>
            <field name="concept_name" collation="http://marklogic.com/collation/en/S1"/>
        </word>
    </constraint>
    <term>
        <term-option>case-insensitive</term-option>
        <term-option>punctuation-insensitive</term-option>
        <term-option>whitespace-insensitive</term-option>
        <term-option>wildcarded</term-option>
    </term>
    <return-facets>false</return-facets>
    <return-values>false</return-values>
    <return-constraints>false</return-constraints>
    <return-frequencies>false</return-frequencies>
    <return-qtext>false</return-qtext>
    <search-option>format-json</search-option>
    <search-option>score-simple</search-option>
</options>

并执行搜索search:search($q, $options, $start, $page-length)

但搜索的是,而不是 case-insensitive。如何在此场景中指定field的选项。我希望它是case-insensitive

当我做cts:field-value-match("concept_name", $q ("case-insensitive", "diacritic-insensitive"))时,我确实得到了正确的结果,所以我如何指定使用上面的搜索选项来做同样的事情。

EN

回答 1

Stack Overflow用户

发布于 2017-03-30 16:27:31

我认为您希望您的<term-option>case-insensitive</term-option><constraint...><word>元素中。这样,该选项就会用该约束影响您的搜索。但是,您还没有共享您的$q (serach string),所以我不确定您正在使用什么搜索进行测试。

您应该注意到,cts:field-word-match将在字段单词词典中搜索,因此比匹配字段范围索引中的值的cts:field-value-match更适合您正在进行的搜索:搜索。

无论如何,我不确定您的数据库或字段中有哪些选项,因此不清楚为什么要努力获得不区分大小写的匹配。当我尝试cts:field-word-match("concept_name", "alexa488", ("collation=http://marklogic.com/collation/en/S1"))时,我得到一个匹配,即使我没有添加case-insensitive选项。类似地,当我尝试搜索:没有<term-option>case-insensitive</term-option>的搜索时,我得到一个匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43120583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档