python - Riak Search 2 没有索引桶

标签 python solr riak

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

我创建了一个自定义 search schema命名为 nodes。 我创建并激活了一个桶类型 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,但我得到了相同的结果。

参数search在配置文件(/etc/riak/riak.conf)中设置为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"/>没有。

关于python - Riak Search 2 没有索引桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920110/

相关文章:

python - 无法理解为什么正常停止线程会在Windows下的(wx)Python中挂起该线程的其余执行代码

python - 使用 py2exe 和 BeautifulSoup。脚本运行正常,但转换为 .exe 后,显示错误

Solr 停用词问题 - 文档不匹配

solr - 限制 Solr 中过滤查询返回的结果数量

mongodb - Riak 是否推荐用于存储和流式传输大型二进制文件?

java - Riak KV 2.1.1 Java客户端: No suitable method found for Client.执行()

python - vertica-python 复制本地时出错

solr - Solr4.1 上的 CopyField 问题

sql-order-by - 如何对数据进行排序/排序?

python - 将 numpy 数组作为行添加到 pandas 中,并以字符串作为索引