elasticsearch,search-engine,Mongodb,Lucene,elasticsearch,Search Engine" /> elasticsearch,search-engine,Mongodb,Lucene,elasticsearch,Search Engine" />

Mongodb Elasticsearch未返回所有相关结果

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

我使用弹性搜索来搜索存储在MongoDB中的文件。我想检索名称与模式匹配的所有文件。当我在MongoDB中查询时,它返回6754个文件

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*"
            }
        }
    }
}