elasticsearch,Search,Solr,Lucene,elasticsearch" /> elasticsearch,Search,Solr,Lucene,elasticsearch" />

如何使用ElasticSearch设计搜索用户和朋友?

如何使用ElasticSearch设计搜索用户和朋友?,search,solr,lucene,elasticsearch,Search,Solr,Lucene,elasticsearch,在我们的应用程序中,我们有用户,用户也可以有朋友(想想Facebook,这种关系是双向的)。我们希望能够: 按名称或用户名在站点范围内搜索用户 允许每个用户按姓名或用户名搜索她的朋友 考虑到以下几点,设计该系统的最佳方法是什么: 一个用户最多可以有5万个朋友 用户可以随时更改自己的姓名和用户名 我将建议另一种技术,我认为这将有助于解决这个问题。您可以检查(图形数据库),这将帮助您轻松建立关系(用户朋友)和遍历图形 您还可以使用Lucene作为Neo4j的独立索引引擎,并进行全文搜索 此外,您可以

在我们的应用程序中,我们有用户,用户也可以有朋友(想想Facebook,这种关系是双向的)。我们希望能够:

  • 按名称或用户名在站点范围内搜索用户

  • 允许每个用户按姓名或用户名搜索她的朋友

  • 考虑到以下几点,设计该系统的最佳方法是什么:

  • 一个用户最多可以有5万个朋友

  • 用户可以随时更改自己的姓名和用户名


  • 我将建议另一种技术,我认为这将有助于解决这个问题。您可以检查(图形数据库),这将帮助您轻松建立关系(用户朋友)和遍历图形

    您还可以使用Lucene作为Neo4j的独立索引引擎,并进行全文搜索

    此外,您可以在下面找到一个可能会有所帮助的示例

    注:我与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都是不错的选择。