如何实现对指定用户文档的搜索?

2024-06-07 15:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在我当前的项目中,用户可以like首歌曲,现在我将添加一个歌曲搜索,这样用户就可以搜索她以前liked的歌曲。你知道吗

我以前使用xapian实现过搜索引擎,它涉及定期构建文档索引。你知道吗

在我的例子中,我必须独立地为每个用户的歌曲建立索引吗?你知道吗

如果我希望搜索结果更加real-time,这是否意味着我需要每隔很短的时间增量地构建索引?你知道吗


Tags: 项目用户文档time时间歌曲real增量
1条回答
网友
1楼 · 发布于 2024-06-07 15:33:02

单独回答你的问题。你知道吗

我必须独立地为每个用户的歌曲建立索引吗?你知道吗

不,这种情况下的一种常见技术是分别用歌曲的信息和用户的标识符对每个like进行索引。然后,当您搜索时,您希望根据实际登录的用户标识符过滤用户自然文本搜索的结果。你知道吗

在Xapian中,您可以添加一个表示用户的术语(带有合适的前缀,因此对于id为175的用户,您可能有XU175),然后使用OP_FILTER将搜索限制为登录用户的喜欢。你知道吗

我是否需要每隔很短的时间增量构建索引[以支持实时索引]?你知道吗

这完全取决于您使用的搜索系统。使用Xapian,您可以这样做,并定期将生成的数据库“压缩”到一个基本数据库中;或者您可以将实时索引到数据库中,尽管Xapian是一个编写器,您需要找到一种序列化方法,例如,将新的like放入一个队列中,并有一个进程将它们弹出并将索引放入数据库。一个基本上现成的解决方案是使用Restpose,它由一个Xapian开发人员编写,与SolrLucene所起的作用相同。你知道吗

您还可以通过索引到一个数据库中,然后将其复制到另一个数据库并搜索复制的版本来获得更高级的功能,这也为您提供了将来水平扩展的选项。在Xapian文档中有一个discussion of replication。你知道吗

相关问题 更多 >

    热门问题