精简版
我想在我的数据库中的任意一组对象中有效地执行全文搜索。所有对象都将在搜索引擎中编入索引。
我的想法
我打算把它变成一个两部分的操作。首先,将向搜索引擎查询与全文搜索匹配的加权/排序的 id 集。这组 id 将被过滤,删除任何不在用户原始集合中的 id。
有一个更好的方法吗?如果没有,您能否就有效地做到这一点提供任何建议?
长版
我正处于构建 Web 应用程序的规划阶段,该应用程序将允许用户可视化高度链接的数据集并操纵这些可视化以派生有趣的顶点集以进行进一步分析。用户通过 gui 执行的过滤操作将很复杂,并且很难表示为可索引的数量。
我想允许用户对这些数据集中的结果执行全文搜索。看看Google 在结果集中搜索所做的工作,他们简单地将较早的搜索查询附加到新查询以启用“搜索范围内”的方法对于我的数据可能不可行。
这个问题的公认答案促进了使用数据库操作来过滤来自搜索引擎的结果的想法。
作为解决方案的一部分,当用户想要在其中搜索的顶点集变得足够小以供前端处理时,我还考虑让前端切换到使用lunr 。弄清楚这个限制是什么需要一些测试,但我怀疑它会是几千个,所以仍然需要一个服务器端解决方案。
环境细节
我在 appengine 上运行 python 2.7。
在这个应用程序中,我希望初始结果集(将在其中搜索)包含 10 到 2000 个顶点。整个数据库中的顶点总数可能会大几个数量级。