【发布时间】:2013-07-11 14:32:27
【问题描述】:
短版
我想在我的数据库中的任意一组对象中高效地执行全文搜索。所有对象都将在搜索引擎中编入索引。
我的想法
我计划将此操作分为两部分。首先,将向搜索引擎查询与全文搜索匹配的加权/排序的 id 集。这组 id 将被过滤掉,删除任何不在用户原始集合中的 id。
有没有更好的方法来做到这一点?如果没有,您能否就如何有效地做到这一点提供任何建议?
加长版
我正处于构建 Web 应用程序的规划阶段,该应用程序将允许用户可视化高度链接的数据集并操纵这些可视化以导出有趣的顶点集以供进一步分析。用户通过 gui 执行的过滤操作将很复杂,并且很难表示为可索引的数量。
我希望允许用户对这些数据集中的结果进行全文搜索。查看what Google does for searching within a result set,他们简单地将较早的搜索查询附加到新查询以启用“搜索范围内”的方法对于我的数据可能不可行。
对this question 的接受回答促进了使用数据库操作来过滤来自搜索引擎的结果的想法。
作为解决方案的一部分,我还考虑让前端切换到使用lunr,当用户想要在其中搜索的顶点集变得足够小以供前端处理时。弄清楚这个限制是多少需要一些测试,但我怀疑它会是几千个,所以仍然需要服务器端解决方案。
环境详情
我在 appengine 上运行 python 2.7。
在这个应用程序中,我希望初始结果集(将在其中搜索)包含 10 到 2000 个顶点。整个数据库中的顶点总数可能会大几个数量级。
【问题讨论】:
标签: python performance google-app-engine search