问题标签 [riak-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
144 浏览

riak - 如何获取自 X 以来最后一次修改的 Riak 密钥?

有没有办法从 Riak 获取自指定时间以来被修改的密钥列表?一连串的变化同样好。 MapReduce 不是推荐的方式

0 投票
0 回答
43 浏览

riak - 如何解析riak Kv中的关联类型数组?

如何在 Riak-solr 中解码这个 JSON?

0 投票
0 回答
33 浏览

riak - 在riak中使用Extractor进行索引时出现错误

运行命令后:-

我收到错误消息:-

我们如何解决这个问题???在 riak 中使用提取器时,我得到了这个。

0 投票
0 回答
378 浏览

solr - Yokozuna 关闭并带走了 Riak - 似乎找不到原因

目前在 10 节点集群上遇到问题,运行大约一天后,3 个节点将退出(总是随机的 3 个)。

Riak 版本:2.1.4

10 个虚拟机,每个运行 10GB 内存,运行 Oracle Linux 7.3 版

Java版本:

我们平常的 Riak 家伙此刻正在度假,所以没有太多资源可调查。任何关于从哪里开始寻找的帮助或指导将不胜感激。

故障转储详细信息:

solr.log 中没有太多详细说明原因:

但是,在 solr.log 中的一些合并过程之后,我们得到以下结果(我怀疑这会阻止主管第二次重新启动它,从而停止 Riak

Erlang.log 包含:

我们在 riak.conf 中添加了额外的选项

没有任何 OOM 错误或进程被 oom_killer 杀死的迹象

0 投票
1 回答
85 浏览

java - Riak KV 2.1.1 Java 客户端:找不到适合 Client.execute () 的方法

我正在为 Riak KV 2.1.1 使用 Java 客户端。创建索引并将其应用到命名空间后,即使我遵循网站上给出的文档,我也得到了找不到合适的方法错误。解决方案是什么?

谢谢。

请参阅下面的代码和完整错误。

错误图像

0 投票
1 回答
123 浏览

database - Riak Yokozuna Solr,如何检索存储但不是索引字段?

我正在尝试在 riak 中实现消息归档。架构看起来像这样

id 和 packet 不需要被索引,但需要在每个查询中查询。

我应该创建一个自定义方案并将它们作为非索引字段存储在 Solr 中吗?

我应该在单独查询每个键时对搜索结果进行应用程序级连接吗?

还是 MapReduce 以某种方式是一种选择?

还是完全不同的东西?

谢谢你。

0 投票
0 回答
251 浏览

riak - Riak db 返回 500 内部服务器错误

我似乎对我们的 riak-kv db v2.2.3 有问题,我们目前正在运行 5 节点集群,上周突然对我们的数据库的请求开始为所有/几乎每个请求返回 500 内部服务器错误(也可能值得一提的是,我们的数据库在过去 2 周内几乎翻了一番。)起初,我们认为问题出在发出请求的代码中,但是在 ssh 到集群中的一个节点并尝试简单的列出请求之后我们看到了这个桶:

命令:

回复:

在对该问题进行了更多调查后,我在其中一个 riak 节点上提取了日志并看到了这一点:

经过一番谷歌搜索,有人说这个错误是由以下原因引起的:java.lang.OutOfMemoryError: Java heap space

所以我修改了我的 riak 配置:

至:

但是,我仍然遇到同样的错误,非常感谢任何帮助。

0 投票
1 回答
110 浏览

riak - Riak 搜索 CRDT 数据类型 - 内存后端

我正在使用 riak2.2.3,并尝试在地图存储桶类型中进行搜索,但没有返回任何内容。

我在内存后端配置了一个桶类型“dist_cache”:

然后我在 /etc/riak/ 中启用了搜索:

然后我配置了一个索引,使用默认模式并将其与存储桶类型相关联(见上文)。

我可以使用键在该存储桶中成功存储和检索值。我在寄存器中存储了 3 个值:二进制数据、整数(时间戳)和字符串:

(使用 Elixir 的 Riak 库从 Elixir shell 格式化后显示。)

但是,当我尝试搜索这些值时,什么也没找到:

此外,/var/log/riak/solr.log 不显示这些请求的任何错误消息。

我错过了什么吗?我需要从 java 启动选项中删除一些选项,但现在看来 java 已启动并正在运行,并且 solr.log 在尝试格式错误的请求时确实显示错误消息。

编辑:

尝试@vempo 的解决方案后:

我已经用 _register 为该字段添加了后缀,但它仍然不起作用。以下是该领域的情况:

但搜索请求仍然没有返回结果:

仍然知道 /var/log/riak/solr.log 中的输出,并且索引似乎设置正确:

0 投票
1 回答
92 浏览

riak - Riak 和内存后端:处理过期和修剪

我想知道最好的策略是管理存储在内存 Riak 存储桶类型中的会话相关数据的过期。

看来这个后端支持ttl(http://docs.basho.com/riak/kv/2.2.3/setup/planning/backend/memory/#ttlhttp://docs.basho.com/riak/kv /2.2.3/configuring/backend/#memory-backend),但是第二个链接的文档指出:

“一旦该对象的时间到了,它将在下一次读取其密钥时被删除。” 如果对象永远不会被再次读取怎么办?它会留在内存中吗?但是我想它最终会在达到memory_backend.max_memory_per_vnode极限时被摧毁。

存储到期时间戳是另一个相关选项吗?在这种情况下,修剪将由定期搜索“旧”时间戳的进程完成:

我已经通过将时间戳存储在计数器中对其进行了测试,因为无法对索引为字符串的寄存器进行范围请求:

但是,我不确定计数器是为存储整数而设计的。在 Riak 数据类型中存储整数的最佳实践是什么?声明了正确的 int 类型的自定义模式?

0 投票
0 回答
35 浏览

riak - Riak:可搜索的地图列表(带有 CRDT)

我有一个用例,其中包括在一个属性下存储多个地图。这是等效的 JSON 列表:

另外,我希望它可以在对象级别进行搜索。例如: - 搜索具有手机号码的条目 - 搜索具有手机号码且其号码以字符串“+7”开头的条目

由于 Riak 不支持映射集(但只支持寄存器集),我想知道是否有实现它的技巧。到目前为止,我有 2 个想法

地图地图

这个想法是为对象生成(随机?)键,并将列表中的每个对象存储在父映射中,其键是为此唯一目的而生成的键。

在我看来,它不允许搜索对象(父地图内的地图),因为 Riak Solr 搜索需要属性的完整路径。不能简单地编写以下 Solr 查询:phone_numbers.*.tel:+7*. 组合搜索(例如,具有手机号码且号码以字符串“+7”开头的搜索条目)似乎很难实现。

具有模拟多值属性的集合

该解决方案包括使用一个集合并将对象的所有值作为单个字符串插入,它们之间有分隔符。是的,这是一个黑客。属性值看起来像:$tel:+79001234567$type:mobile$作为:属性名称-值分隔符和$作为属性分隔符。

使用通配符搜索可能是可行的*(丑陋,但仍然),除了转义分隔符的问题:如果 type 属性包含 a:怎么办?它们是否是一些被 Riak 接受并且在字符串中不可接受的分隔符(我正在考虑控制字符)?

简而言之

我正在寻找一种解决方案,无论它有什么骇人听闻的东西,只要它有效。欢迎任何想法。