如何根据正则表达式匹配计数对 mongodb 正则表达式搜索查询结果进行排序 [英] How can I sort mongodb regex search query results based on regex match count
本文介绍了如何根据正则表达式匹配计数对 mongodb 正则表达式搜索查询结果进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我不知道如何根据最佳"匹配对查询结果进行排序.
I can't figure out how to sort query results based on the "best" match.
这是一个简单的例子,我有一个包含城市/邮政编码夫妇列表的区域"集合.
Here's a simple example, I have a "zone" collection containing a list of city/zipcode couples.
如果我使用and"关键字通过正则表达式搜索多个单词:
If I search several words through the regex using the "and" keyword like that :
"db.zones.find({$or : [ {ville: /ROQUE/}, {ville: /ANTHERON/}] })"
结果不会按最佳匹配"排序.
Results won't be ordered by "best match".
对此我还有什么其他解决方案?
What other solutions do I have for that ?
推荐答案
我最终使用 ElasticSearch 搜索引擎做这个查询:
I ended up using ElasticSearch search engine do this query :
@zones = Zone.es.search(
body: {
query: {
bool: {
should: [
{match: {city: search}},
{match: {zipcode: search.to_i}}
]
}
},
size: limit
})
其中搜索是视图发送的搜索参数.
Where search is a search param sent by view.
带有 Selectize 插件的 ElasticSearch
这篇关于如何根据正则表达式匹配计数对 mongodb 正则表达式搜索查询结果进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文