Mongodb Elasticsearch未返回所有相关结果
我使用弹性搜索来搜索存储在MongoDB中的文件。我想检索名称与模式匹配的所有文件。当我在MongoDB中查询时,它返回6754个文件Mongodb Elasticsearch未返回所有相关结果,mongodb,lucene,elasticsearch,search-engine,Mongodb,Lucene,elasticsearch,Search Engine,我使用弹性搜索来搜索存储在MongoDB中的文件。我想检索名称与模式匹配的所有文件。当我在MongoDB中查询时,它返回6754个文件 FSsearch:PRIMARY> db.fs.files.find({"filename":/.*Mail.*/}).count(); 6754 但当我尝试用弹性搜索做同样的事情时,它只返回85个文件。有没有办法在弹性搜索中获取所有文件 curl -XGET "localhost:9200/submission_idx/files/_search?s
FSsearch:PRIMARY> db.fs.files.find({"filename":/.*Mail.*/}).count();
6754
但当我尝试用弹性搜索做同样的事情时,它只返回85个文件。有没有办法在弹性搜索中获取所有文件
curl -XGET "localhost:9200/submission_idx/files/_search?search_type=scan&scroll=10m&size=7000&pretty=1" -d '{"query" : {
"field" : {
"filename" : "*Mail*"
}
}
}'
{
"_scroll_id" : "c2Nhbjs1OzIyMDpDV21tamdEbVEyZUhOcVcwYWVnVU9ROzIxODpDV21tamdEbVEyZUhOcVcwYWVnVU9ROzIxNjpDV21tamdEbVEyZUhOcVcwYWVnVU9ROzIxOTpDV21tamdEbVEyZUhOcVcwYWVnVU9ROzIxNzpDV21tamdEbVEyZUhOcVcwYWVnVU9ROzE7dG90YWxfaGl0czo4NTs=",
"took" : 8,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 85,
"max_score" : 0.0,
"hits" : [ ]
}
}
您可以使用(或):
注意邮件中小写的“m”。默认情况下,Elasticsearch使用小写标记符分析所有字段。因此,当搜索大写的“邮件”时,Elasticsearch将从返回的结果中排除所有分析的字段。您可以通过将字段标记为“未分析”或创建自己的自定义分析器来关闭默认小写标记器
另外,请注意,在搜索大型数据集时,使用通配符(尤其是在查询开始时)可能会非常慢,并且会消耗内存
{
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"regexp":{
"filename" : "*mail*"
}
}
}
}