eXist-DB中字段范围索引未生效(Monex不显示)问题咨询
关于eXist-db范围索引与Monex视图的疑问解答
问题1:Monex的索引视图是否不显示字段值?
是的,Monex的集合索引视图不会展示通过<field>标签定义的自定义范围字段的值。
Monex的索引UI仅支持展示直接创建的元素或属性范围索引(即<create qname="元素/属性名"/>这类配置)的对应值。你第一种配置里的bar-attr属于绑定在test元素范围索引下的自定义字段,这类细粒度的索引配置不在Monex的可视化展示范围内,但索引本身是正常生效的。
问题2:我对字段的理解是否完全错误?
你的理解没有完全错误,但需要明确自定义字段的定位:
- 当你在
<create qname="test">下嵌套<field>时,确实是在为test元素创建关联的自定义范围字段,用来索引该元素上的@bar属性值。这个索引是有效的,你可以通过eXist-db的field()函数在查询中调用它,比如://test[field('bar-attr', 'baz')] - 区别在于,这种自定义字段并非独立的属性范围索引,而是依附于
test元素的范围索引存在,因此不会在Monex的索引视图中被单独列出值。而你第二种配置里直接创建@bar的范围索引,属于独立的属性索引,所以Monex会展示其对应的值。
补充验证方式:如果需要确认自定义字段是否生效,除了执行查询,还可以用xmldb:index-keys()函数查看索引内容,示例:
xmldb:index-keys('/你的集合路径', 'range', 'test', 'bar-attr')
该函数会返回自定义字段的索引值,以此确认索引是否正常创建。
内容的提问来源于stack exchange,提问作者B Polit
相关产品推荐
相关产品推荐

