Riak搜索2未索引bu

2024-04-19 10:00:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我创建了一个名为nodes的自定义search schema。 我创建并激活了一个bucket类型nodessearch_index属性设置为nodesdatatype属性设置为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。你知道吗

我不知道我做错了什么,如果有人能帮我,提前谢谢。你知道吗


Tags: 数据default类型search属性bucketfootype
1条回答
网友
1楼 · 发布于 2024-04-19 10:00:49

首先,您应该考虑到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"/>不行。你知道吗

相关问题 更多 >