如何使用 AWS Neptune 作为源实现全文搜索

How to implement full text search using AWS Neptune as the source

我在其他问题上看到 Gremlin 和 Neptune 本身不支持全文搜索。

如何在我的网站中提供此功能?

理想情况下,我不需要照顾 运行 更多 infrastructure/software。

认为某些选项正在使用外部搜索服务,如 Solr 或 ElasticSearch。另一个 AWS 服务呢?云搜索?

谢谢

CloudSearch 是不错的选择,但请注意 "looking after" 这将是不可避免的。您至少需要一个错误 monitoring/logging 机制,使您能够查看哪些查询失败并找出原因。例如,也许变音符号处理不好。但是,请注意,需要一些将 Neptune 与 CloudSearch 连接起来的代码,我不知道有任何开箱即用的方法可以将某些数据从 Neptune 作为索引传输到 CS。至少是一个 Lambda 函数。 Lambda 函数值得考虑。

你的问题很及时。 Amazon Neptune 和 ElasticSearch 之间的集成刚刚启动 [1]。当您向图表中添加数据时,Neptune 会使用 Streams 功能自动使 ElasticSearch 索引保持最新。这在方法上类似于您正在考虑构建的方法,但具有额外的优势,即您可以直接从图形查询访问索引,而不需要编写调用索引然后调用 Neptune 的包装代码。您可以在 Gremlin and/or SPARQL 查询中使用 ElasticSearch 索引,只需在查询中包含一些 "magic" 字符串,告诉 Neptune 使用 ElasticSearch 索引而不是它自己的内部索引。您可以控制给定 Gremlin/SPARQL 查询应该使用哪个 ElasticSearch 查询 API 之类的事情。相同 link [1] 中包含有关如何设置环境的说明,这不会花费很长时间。希望这对您的用例有所帮助。附带说明一下,该功能的另一个好处是,在使用 Gremlin 时,您不需要经过特别修改的客户端库即可利用这些新功能。

[1] https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search.html