嗨我喜欢以下表结构,我需要做简单的用户搜索, 可以任何人给我建议我如何为此和查询设计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一样的要求,如朋友的用户搜索顺序,共同的朋友(计数)
答案 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)”。希望这会有所帮助。