MarkLogic搜索:搜索方面值与结果集不一致
我们正在使用MarkLogic 9.0-4MarkLogic搜索:搜索方面值与结果集不一致,marklogic,marklogic-9,Marklogic,Marklogic 9,我们正在使用MarkLogic 9.0-4search:search,在options中定义了facet。返回的facet包含的值在结果集中不是 例如,搜索将返回city='Abbotsford',count=5的facet,并且结果集不包含city='Abbotsford'的任何项 此外,这个问题只发生在我们的应用程序中,而不是在查询控制台中,并且只发生在某些环境中:我们的2名开发人员在他们的本地开发环境中没有看到这个问题(1名开发人员看到了),我们的测试和生产环境都显示了这个问题 任何帮助都
search:search
,在options
中定义了facet。返回的facet包含的值在结果集中不是
例如,搜索将返回city='Abbotsford',count=5的facet,并且结果集不包含city='Abbotsford'的任何项
此外,这个问题只发生在我们的应用程序中,而不是在查询控制台中,并且只发生在某些环境中:我们的2名开发人员在他们的本地开发环境中没有看到这个问题(1名开发人员看到了),我们的测试和生产环境都显示了这个问题
任何帮助都将不胜感激
镶嵌面约束如下所示:
<constraint name="city" label="City">
<range type="xs:string" collation="http://marklogic.com/collation/en">
<path-index xmlns:ata="http://kriteachings.org/ata">/ata:user/ata:profile/ata:addresses/ata:address[@type eq "primary-residence"]/ata:place/ata:details/ata:locality</path-index>
</range>
</constraint>
/ata:user/ata:profile/ata:addresses/ata:address[@type eq“primary residence”]/ata:place/ata:details/ata:Location
可搜索表达式各不相同,通常如下所示
<searchable-expression xmlns:ata="http://kriteachings.org/ata">xdmp:directory("/user/")/ata:user[ata:trainer-info]</searchable-expression>
xdmp:directory(“/user/”)/ata:user[ata:trainer info]
一些非常相关的信息:当我访问查询控制台时,我是一个具有
admin
角色的用户,没有发现问题。当我允许用户访问我们的一个应用时,我也没有看到问题。只有当用户不是admin
时,才会出现问题(查看结果集中不存在的面中的值)。您可以提供城市面后面的索引的详细信息吗?这可能与区分大小写有关吗?Thx@grtjn。我添加了城市搜索选项约束作为示例。我在查询控制台中运行时得到了预期的结果。当代码通过我们的应用服务器执行时,我们会得到我引用的意外结果。如果您将search:search设置为未筛选运行,我打赌您会在结果集中看到这些结果。您正在运行哪些类型的搜索?最有可能的情况是,从结果集中筛选出的结果不正确,但没有从facets或document total中筛选出(因为它们是以未筛选的方式计算的)。要使facets和documenttotal准确,解决方案是添加额外的索引,以回答未过滤搜索当前无法回答的问题。我个人的猜测是,根据路径范围索引结构判断,您需要启用位置索引。Thx@Rob S。我们正在使用一个可搜索表达式(现在包含在上面),它肯定会消除我们在facet中看到的值。我们的facet使用的索引所涉及的数据集比可搜索表达式所涉及的数据集更大。我们仍然感到困惑的是,当在一个HTTP应用程序中运行搜索时,而不是在通过查询顾问运行search:search
时,我们发现了这个问题。