我的文档中包含名字,姓氏,身份证号和电话字段。
我想进行文本搜索以检索包含一个或多个搜索词的文档。
例如:
{"$text":{"$search":"JOHN YES"}}
检索任何索引字段中包含JOHN或YES的所有文档。
但是
{"$text":{"$search":" \"JOHN\" \"YES\" "}}
精确检索其first_name精确为JOHN且last_name精确为YES的文档
但是
{"$text":{"$search":" \" JOHN YES \" "}}
不响应任何内容,因为任何字段都完全是JOHN YES
由于我不知道哪个部分与哪个字段相关,因此无法使用。
我想要的是如果我这样查询:
"JOHN YES SOMEID_NO"
它应该返回包含任何搜索字段中一个或多个单词的文档。
示例结果:
1. first_name: JOHN
2. first_name JOHN YES
3. first_name JOHN, last_name YES
4. id_no: SOMEID_NO
5. first_name: YES
或类似的组合。
答案 0 :(得分:0)
通过包含引号,您正在搜索引号内的确切短语。包括空格。
您正在搜索" JOHN YES "
,在开头和结尾都有一个空格。该文本搜索将仅匹配任何字段包含" JOHN YES "
(包括那些空格)的文档。