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文档