在 datastax 图中使用 gremlin 访问 Solr 的最佳方法
Posted
技术标签:
【中文标题】在 datastax 图中使用 gremlin 访问 Solr 的最佳方法【英文标题】:Best way to access Solr using gremlin in datastax graph 【发布时间】:2020-04-16 12:08:22 【问题描述】:在 Datastax 图数据库中使用 Solr 的最佳方式是什么。所以,目前我们有 4 个节点的集群,其中 3 个节点是 DSE,1 个节点用作 Solr 实例。
现在,我们目前正在使用 Solr Web 服务将 Solr 集成到我们使用 gremlin 与 DSE 对话的后端代码中。
现在,我们即将向集群添加一个 Solr 实例,使用 Solr Web 服务似乎不是一个好的选择,因为我们将有多个 url 来访问正确的索引。
当您在后端的 Datastax 上使用 Gremlin 时,集成 Solr 的最佳方式是什么。
【问题讨论】:
为什么要使用单独的 Solr 实例而不是使用 DSE 搜索? 我只使用 DSE 搜索。事情是我有 4 个实例,其中 3 个启用了 DSE Graph,1 个启用了 DSE Solr 【参考方案1】:这里有几件事:
-
您的节点在同一数据中心内启用了不同的工作负载。您需要为数据中心内的所有节点启用图形和搜索工作负载。类似问题请见this answer。
您可以直接从 Gremlin 使用 DSE 搜索,无需明确指定 Tomcat URL。你只需要在对应的属性上创建一个搜索索引,然后使用
token
、regex
等操作即可。见corresponding part of DSE Graph documentation;
即使没有 Gremlin,您也可以直接使用 CQL 中的大部分 DSE 搜索功能,而无需了解有关 Web 服务 URL 的任何信息 - 您只需将 solr_query
用于 specification of the query,或者仅在 DSE 版本中使用 SELECT ... FROM ... WHERE col LIKE 'text%';
6.x。
【讨论】:
嘿@Alex 感谢您的回答。所以如果我理解正确,我们在同一个数据中心有不同的工作负载,应该在所有节点上启用它。如果我们进行工作负载隔离,我们可以在不同的数据中心启用不同的工作负载。在一个数据中心上说图表,在另一个数据中心上说 Solr。 是的 - 您需要让 DC 中的所有节点具有相同的工作负载。关于工作负载分离 - 我不是 100% 确定(我不经常使用 Graph),但如果我没记错的话,现在你需要在同一个 DC 中拥有 Graph 和 Search,因为 DSE 搜索是本地特定的数据中心,如果 Graph DC 中没有索引,虽然查询不会失败,但 DSE 根本找不到数据。以上是关于在 datastax 图中使用 gremlin 访问 Solr 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章