我正在开发一个搜索功能,我必须在大约300,000个文档中执行搜索操作。 为此我创建了一个超过四个字段的复合索引,并且也给它们赋予了权重。默认情况下,如果我搜索具有多个单词的短语,则mongoose会搜索具有 OR 操作的所有关键字。例如: - 如果您搜索小细胞肺,那么mongoose将搜索其中任何一个可用的所有文档。 它工作得很快。
但我的要求是执行 AND 操作。为了实现这一点,我将短语中的所有单词拆分,然后将它们放在双引号中。因此,当用户搜索具有多个单词的短语时,对每个单词执行搜索操作为 AND 操作。例如: - 如果你搜索小细胞肺("小""细胞""肺")那么它应该找到所有那些文件所有都可用。它也在工作,但现在很慢。
有没有办法让它更快。 如果需要,我会分享代码。
由于
答案 0 :(得分:1)
试一试:
<div name="element-to-focus" data-ng-init="init()"></div>
现在上面的代码将执行以下操作:
如果搜索字符串包含短语,则搜索执行AND 搜索字符串中的任何其他术语;例如搜索“\”吻我 “脸颊嘴唇”搜索“亲吻我”和(“cheecks”或“ “唇部”)。
您可以从这里阅读:
答案 1 :(得分:0)
如果要匹配完整的短语,请将短语括在转义双引号中:
$('body').on('click', ".request-columns", function() {
var $this = $(this);
$this.toggleClass("checked-all");
var checkedAll = $this.hasClass('checked-all');
var text = checkedAll ? "Deselect All" : "Select All";
$this.find("a").html(text);
$this.parent().find(".column-check").each(function() {
$(this).prop('checked', checkedAll); // note that this this, is a different this ;)
});
});
另请参阅mongodb网站上的$text documentation