首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Riak搜索2没有索引桶

Riak搜索2没有索引桶
EN

Stack Overflow用户
提问于 2016-10-07 14:50:32
回答 1查看 94关注 0票数 2

我使用Riak作为用Python实现的图形数据库的键值存储后端。

我创建了一个名为搜索模式的自定义nodes。我创建并激活了一个桶类型nodes,其中search_index属性设置为nodesdatatype属性设置为map

我将以下数据插入存储桶default (使用桶类型为nodes):

代码语言:javascript
复制
key: node1
value: {
    "type_set": {"n1"},
    "foo_set": {"bar", "baz"}
}

NB:数据自动转换为Map数据类型。

我可以正确地获取数据,但是我尝试了以下全文搜索,没有返回任何文档:

代码语言:javascript
复制
type_set:n1
type_set:*n1*
type_set:*
foo_set:*
_yz_rk:node1
_yz_rk:*

我的文档似乎没有索引。

我还尝试将search_type属性设置为桶default上的nodes,但得到了相同的结果。

参数search在配置文件(/etc/riak/riak.conf)中设置为on,并安装了OpenJDK 7。

我不知道我做错了什么,如果有人能帮我的话,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 20:09:07

首先,您应该考虑到Riak会自动添加后缀_set,这样您就不必将type_set命名为type而是命名为type。否则,您将不得不查询type_set_set:*而不是type_set:*

第二,根据数据类型模式,嵌入式模式(相对于顶层模式)必须使用动态字段。显然,Riak在字段名前面加上了顶级地图的一些内部标识符。不幸的是,这也意味着,如果不为另一组建立索引,就不能对其中一组进行索引。

我已经运行了一些测试,发现<dynamicField name="*_set" type="string" indexed="true" stored="true" multiValued="true"/>可以正常工作,而<dynamicField name="*type_set" type="string" indexed="true" stored="true" multiValued="true"/>则不行。

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

https://stackoverflow.com/questions/39920110

复制
相关文章

相似问题

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