mongoose文本search – 改变其行为,以及与操作减慢

我正在开发一个searchfunction,在这个searchfunction中,我必须在大约30万个文档中执行search操作。 为此,我创build了一个四个领域的复合指数,并给予了他们重视。 默认情况下,如果我search一个有多个单词的短语,然后mongoose用OR操作search所有的关键字。 例如: – 如果您search小细胞肺,然后mongoose会search其中任何一个可用的所有文件。 它工作得非常快。

但我的要求是执行AND操作。 为了实现这一点,我把所有的单词分成一个短语,然后把它们放在双引号中。所以当用户search一个有多个单词的短语时,search操作在每个单词上执行AND操作。 例如: – 如果您search小细胞肺 (“小”“细胞”“肺”),那么它应该find所有可用的文件。 它也在工作,但现在很慢。

有没有办法让它更快。 如果需要,我会分享代码。

谢谢

给这个镜头一个镜头

db.table.find("text", {search:"\"small\" \"cell\" \"lung\""})

上面的代码将执行以下操作

如果searchstring包含短语,则search与searchstring中的任何其他字词执行AND; 比如search“\”,在“脸颊嘴唇”上search“吻我”和(“cheecks”或“lips”)。

你可以从这里阅读

文件

如果要匹配完整的短语,请将该短语用转义双引号引起来:

 db.table.find( { $text: { $search: "small cell lung" } } ) 

另请参阅mongodb网站上的$ text文档