如何使用ElasticSearch设计搜索用户和朋友?
在我们的应用程序中,我们有用户,用户也可以有朋友(想想Facebook,这种关系是双向的)。我们希望能够:如何使用ElasticSearch设计搜索用户和朋友?,search,solr,lucene,elasticsearch,Search,Solr,Lucene,elasticsearch,在我们的应用程序中,我们有用户,用户也可以有朋友(想想Facebook,这种关系是双向的)。我们希望能够: 按名称或用户名在站点范围内搜索用户 允许每个用户按姓名或用户名搜索她的朋友 考虑到以下几点,设计该系统的最佳方法是什么: 一个用户最多可以有5万个朋友 用户可以随时更改自己的姓名和用户名 我将建议另一种技术,我认为这将有助于解决这个问题。您可以检查(图形数据库),这将帮助您轻松建立关系(用户朋友)和遍历图形 您还可以使用Lucene作为Neo4j的独立索引引擎,并进行全文搜索 此外,您可以
我将建议另一种技术,我认为这将有助于解决这个问题。您可以检查(图形数据库),这将帮助您轻松建立关系(用户朋友)和遍历图形 您还可以使用Lucene作为Neo4j的独立索引引擎,并进行全文搜索 此外,您可以在下面找到一个可能会有所帮助的示例
type:friendship
parties_name:[mark zuckerburg, bill gates]
parties_id:[1, 753634] (what if many people are named bill gates)
因此,在你的人际网络中,每种友谊都会有一行,当我们特别的
mark zuckerburg
更新他的友谊(和姓名)时,所有的parties\u id:1
都必须重新编制索引。这种组合能像“朋友中像mark这样的人”这样搜索吗?我真的希望能避免这种情况,但我想这是没有办法的。你能举一个XML模式的例子吗?谢谢,type
作为字符串,parties\u name
作为n-语法/词干文本和parties\u id
作为int都是不错的选择。