【发布时间】:2016-08-18 16:57:05
【问题描述】:
简短:我需要正则表达式搜索一个集合,将完美匹配移动到结果的第一个位置,然后限制该结果。
长一:
在出版物中,我需要对我的结果进行自定义排序,然后(当然是在排序之后)对其进行限制。
我的自定义排序类似于按相关性排序,但不完全是。鉴于这些文件:
{ number: '2123' } // let's call this one A
{ number: '21' } // and this one B
{ number: 'A2123' } // and this one C
{ number: '01' } // and this one D
如果我使用术语21 进行搜索,我想得到A、B 和C。但是在第一个位置B。为什么?因为B 匹配完美。你看?它不是完全按相关性排序,而是将完美匹配(最多只有 1 个完美匹配)移动到第一位。
我尝试了text indexes,但它们与2123 与搜索词21 不匹配。 (我明白为什么,这很好)
那么我的问题到底是什么?我可以正则表达式搜索并发布该游标,但它会有太多文档。我可以限制它,但如果不进行排序,我可能会丢失我绝对需要的完美匹配。
所以最后我不能自定义排序。然后我有了这个想法:我为什么不fetch() 我的光标(未排序且无限制),对获取的数组进行排序和限制,并基于该排序数组创建一个“人工”光标。我没有找到实现这一目标的方法。
【问题讨论】:
-
你为什么要使用 Meteor?