我使用Riak作为Python实现的图形数据库的键值存储后端。你知道吗
我创建了一个名为nodes
的自定义search schema。
我创建并激活了一个bucket类型nodes
,search_index
属性设置为nodes
,datatype
属性设置为map
。你知道吗
我将以下数据插入了bucket default
(bucket类型为nodes
):
key: node1
value: {
"type_set": {"n1"},
"foo_set": {"bar", "baz"}
}
注意:数据自动转换为地图数据类型。你知道吗
我可以正确获取数据,但我尝试了以下全文搜索,但没有返回任何文档:
type_set:n1
type_set:*n1*
type_set:*
foo_set:*
_yz_rk:node1
_yz_rk:*
我的文件似乎没有编入索引。你知道吗
我还尝试在bucket default
上将search_type
属性设置为nodes
,但得到了相同的结果。你知道吗
参数search
在配置文件(/etc/riak/riak.conf
)中设置为on
,并安装openjdk7。你知道吗
我不知道我做错了什么,如果有人能帮我,提前谢谢。你知道吗
首先,您应该考虑到Riak会自动添加后缀
_set
,这样您就不必命名您的type_set
,而是type
。否则您将不得不查询type_set_set:*
,而不是type_set:*
。你知道吗其次,根据Data Type Schemas,嵌入式模式(与顶级模式相反)必须使用动态字段。显然,Riak在字段名前面加了一些顶级映射的内部标识符。不幸的是,这也意味着您不能索引一个集合而不索引另一个集合。你知道吗
我运行了一些测试,发现
<dynamicField name="*_set" type="string" indexed="true" stored="true" multiValued="true"/>
可以正常工作,而<dynamicField name="*type_set" type="string" indexed="true" stored="true" multiValued="true"/>
不行。你知道吗相关问题 更多 >
编程相关推荐