首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何分解搜索查询

如何分解搜索查询
EN

Stack Overflow用户
提问于 2012-03-27 14:17:50
回答 3查看 353关注 0票数 1

我正在为CCG开发一个搜索引擎。我希望用户能够找到基于查询的卡,如"blue brigade hero enhancements that can discard ec's""purple kings of israel"。有许多变量可以搜索:旅(紫色,蓝色),类型(英雄,邪恶人物ec),特殊能力(丢弃)和身份(以色列国王)。我正在考虑使用正则表达式来查找通用的搜索参数。我知道这并不容易,而且需要很长时间才能进行微调,但是有人能给我指出正确的方向吗?正则表达式是一个推荐的解决方案吗?我不知道这是否重要,但我使用的是php和mysql。

EN

Stack Overflow用户

发布于 2012-03-29 16:33:51

我真的很喜欢socha's suggestion,但我也会考虑一个简单得多的。

如果您有一个已知搜索词的字典,并且能够纠正它们的语法和语法(提示:使用您的数据库和OED作为缓存层,在Google上抛出任何缓存未命中),您可以通过将每个搜索词binary bucket sorting到已知类型的集合中来执行搜索。使用您的示例,每个存储桶将是: brigade_purple,brigade_blue,type_hero,type_evil,您的每个特殊能力,以及您的每个特殊类型标识符。

对于每张卡,构造一个符合您的存储桶的位域。对于每个用户查询,构造相同的查询。然后,通过执行数据库的逐位遍历返回符合您的位掩码的结果,对于这个玩具示例,我假设它的形状类似于B+ tree,按照最接近掩码的结果按主位顺序排序。这样做的好处是可以扩展到支持位字段的最大长度,这在许多数据库实现中实际上是无界的。

好的,这有点技术性。这就是我在任何情况下构建搜索数据库的方式。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9884287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档