所以我的mongodb中有一些产品,下面列出了
现在,我得到的搜索是小写的,有时可能带有特殊字符或没有特殊字符。那么,如何构建可以准确给出输出的查询?例如,如果用户输入了“ 优质甜食”,则它应与我的mongodb中的“ 优质甜食”相匹配。如果用户在大写字母中输入了“ HERLEYS SWEET ”,则它应与“ herleys sweet ”相匹配(如我的MongoDB中所示)
relu(weight1 * test_input[0] + weight2 * test_input[1] + bias)
我有上面的查询,可以使用大写或小写字母,但是如果用户正在搜索“ herleys-sweet”之类的内容,那么它将无法正常工作。
答案 0 :(得分:1)
您可以做的一件事是使用re.sub()
函数用其他字符代替特殊字符。
你可以有这样的东西:
db.product.find({"Product":re.compile('^' + re.sub('[<list of special characters>]', '<string to replace with>', pr) + '$',re.IGNORECASE)})
例如:
创建特殊字符列表:[\-\_\~\!\\\/\^\$\%]
选择用什么替换特殊字符。可以是空格' '
或任何.*
。
然后,您将:
db.product.find({"Product":re.compile('^' + re.sub('[\-\_\~\!\\\/\^\$\%]', '.*', pr) + '$',re.IGNORECASE)})