Riak Search 2 没有索引桶
Riak Search 2 not indexing bucket
我正在使用 Riak 作为在 Python 中实现的图形数据库的键值存储后端。
我创建了一个名为 nodes
的自定义 search schema。
我创建并激活了一个存储桶类型 nodes
,其中 search_index
属性 设置为 nodes
,datatype
属性 设置为 map
.
我将以下数据插入存储桶 default
(存储桶类型为 nodes
):
key: node1
value: {
"type_set": {"n1"},
"foo_set": {"bar", "baz"}
}
注意: 数据自动转换为 Map 数据类型。
我可以正确获取数据,但我尝试了以下全文搜索,但没有返回任何文档:
type_set:n1
type_set:*n1*
type_set:*
foo_set:*
_yz_rk:node1
_yz_rk:*
我的文档似乎没有索引。
我也尝试在存储桶 default
上将 search_type
属性 设置为 nodes
,但我得到了相同的结果。
在配置文件(/etc/riak/riak.conf
)中将参数search
设置为on
,并安装了OpenJDK 7
我不知道我做错了什么,如果有人能帮助我,在此先感谢。
首先,您应该考虑到 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"/>
则不能。
我正在使用 Riak 作为在 Python 中实现的图形数据库的键值存储后端。
我创建了一个名为 nodes
的自定义 search schema。
我创建并激活了一个存储桶类型 nodes
,其中 search_index
属性 设置为 nodes
,datatype
属性 设置为 map
.
我将以下数据插入存储桶 default
(存储桶类型为 nodes
):
key: node1
value: {
"type_set": {"n1"},
"foo_set": {"bar", "baz"}
}
注意: 数据自动转换为 Map 数据类型。
我可以正确获取数据,但我尝试了以下全文搜索,但没有返回任何文档:
type_set:n1
type_set:*n1*
type_set:*
foo_set:*
_yz_rk:node1
_yz_rk:*
我的文档似乎没有索引。
我也尝试在存储桶 default
上将 search_type
属性 设置为 nodes
,但我得到了相同的结果。
在配置文件(/etc/riak/riak.conf
)中将参数search
设置为on
,并安装了OpenJDK 7
我不知道我做错了什么,如果有人能帮助我,在此先感谢。
首先,您应该考虑到 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"/>
则不能。