SOLR架构设计和搜索

时间:2012-02-29 18:20:05

标签: solr

嗨我喜欢以下表结构,我需要做简单的用户搜索, 可以任何人给我建议我如何为此和查询设计solr架构

 userid    -  name

  1       -   pot tot
  2       -   peter kate
  3       -   jack henry     
  4       -   jack cope

 id  -  userid   -  friendsid  (foreignkey table)

  1  -   1       -   jack henry 
  2  -   1       -   peter kate
  3  -   3       -   pot tot 
  4  -   2       -   pot tot

当用户1 - (pot tot)正在搜索“jack”时,他必须将“jack henry”视为第一个结果,因为他是共同的朋友。我们有像Facebook一样的要求,如朋友的用户搜索顺序,共同的朋友(计数)

2 个答案:

答案 0 :(得分:2)

你主要想要处理关系和搜索 不确定Solr是否能够为您提供开箱即用的关系部件。

您是否可以尝试检查Neo4j哪个是图表数据库,并且可以帮助您遍历关系并进行搜索。

答案 1 :(得分:0)

我对Neo4j一无所知,但我认为上面的海报有一点意义。我不确定这是Solr设计的那种东西。不过,您可以尝试一下:

<field name="user_id" type="slong" indexed="true" stored="true" required="true" />
<field name="user_name" type="text" indexed="true" stored="true" required="true" />
<field name="friend_id" type="slong" indexed="true" stored="true" required="false" multiValued="true" />

这允许每个用户在Solr索引中拥有0到多个朋友。如果你有一个名为“Jack Henry”且user_id为3的用户,那么找到那些杰克亨利的朋友就像“?q = friend_id:3”一样简单。如果你有另一个名为“Peter Kate”且user_id为2的用户,则可以按如下方式找到Jack Henry和Peter Kate的共同朋友:“?q = friend_id:(2 AND 3)”。希望这会有所帮助。