我正在建立一个项目,需要一个超快速的方式提供一个自动完成饲料的结果基于部分文本匹配。
我将只对数据库中的一个字段进行索引/搜索,尽管数据库行将有其他数据,但我不会为这些字段编制索引。我将有大约2.5万排。
要求:
- 必须与字段中的任何位置匹配(开始键入“Lor”、“Ipsum”、“olor”、“Sit Amet”时,会发现Lorem Ipsum Dolor Sit Amet)
- 在JSON提要中返回结果需要非常快(尽管数据的原始来源并不重要)
- 高流量的可扩展解决方案
我回顾了一些选择。。。
- 像这样使用MongoDB like query in mongoDB
- ElasticSearch-不确定是否有点过分,我需要做的,并没有看到任何例子,匹配部分文本如上
- 类似SQL的查询,但是想象一下这还不够快吗?在
编程语言不是一个太大的问题,但Python或PHP将是首选。
Tags:
这听起来像是典型的全文搜索。根据您的应用程序和数据所在的数据库,进程内whoosh可以满足您的需要(比如Lucene for Java)。在
您可以说,与实际的全文索引相比,SQL
LIKE
查询的性能将非常糟糕。MongoDB可能也不是一个非常适合的应用程序,但是可以根据您的建议进行调整。在正如其他人所提到的,一个执行语言和句法分析(标记化、词干化、大小写和重音规范化等)的全文索引将给您最好的结果。但是,如果没有一定数量的设置和配置,这是不可能实现的。在
看看Solr的Suggester组件:http://wiki.apache.org/solr/Suggester,这里有一个新的组件——我想它叫做AnalyzingSuggester或其他类似的组件,我想它只在Lucene中可用,所以如果你想要一个内存解决方案,你可以使用它(尽管只有Java)。在
相关问题 更多 >
编程相关推荐