我正在尝试使用Flask进行文本搜索。
对于一个单词,它有效,但是当我传递包含多个单词的字符串时,它不起作用。
但是当我以硬编码方式传递该字符串时,它会起作用:
假设该字符串为:
str = "SOME TEXT HERE"
如果我将其作为这样的变量传递:
newText= ' '.join(r'\"'+word+r'\"' for word in str.split())
result = app.data.driver.db[endpoint].find({"$text":{"$search":newText }}, {"score": {"$meta":"textScore"}}).sort([("score", {"$meta": "textScore"})])
它不起作用。
但是如果我像这样通过硬编码传递它:
result = app.data.driver.db[endpoint].find({"$text":{"$search":" \"SOME\" \"TEXT\" \"HERE\" " }}, {"score": {"$meta":"textScore"}}).sort([("score", {"$meta": "textScore"})])
有效。
答案 0 :(得分:1)
变量Company businesstown = new Company(); // since for you this is initialisin the list as well
的内容与硬编码字符串中的内容不同。
尝试在创建newText
期间删除'r',以生成类似于硬编码字符串的字符串,如下所示:
newText