mohsen
(mohsen zanjani)
October 20, 2018, 4:27pm
1
hi,
I'm new in elasticsearch and fscrawler.
I want to search only files (docs) that have file size greater than n bytes and less than m byte.
something like this:
GET /_search
{
"_source": [
"file.filename", "file.*"
],
"query": {
"query_string": {
"query": "something"
},
"_source.file.filesize" : > n and < m
},
"sort": {
"_score": {
"order": "desc"
}
}
}
result of search is:
{
"took": 12,
"timed_out": false,
"_shards": {
"total": 63,
"successful": 63,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 16,
"max_score": 1.4997041,
"hits": [
{
"_index": "myjob",
"_type": "doc",
"_id": "7596d65bd3e1efb6c97f64120ed41c5",
"_score": 1.4997041,
"_source": {
"file": {
"extension": "html",
"filename": "indexing.html",
"content_type": "text/html; charset=UTF-8",
"indexing_date": "2018-07-08T09:08:49.237+0000",
"filesize": 96014,
"last_modified": "2018-07-08T08:56:05.000+0000",
"url": "file:///tmp/es/indexing.html"
}
}
}
]
}
}
nik9000
(Nik Everett)
October 20, 2018, 5:11pm
2
I think you want a range query. I'm on mobile else I'd link you to the docs.
1 Like
hi
Reference - Range datatypes | Elasticsearch Guide [6.4] | Elastic
Examples
curl -H "Content-type: application/json" localhost:9200/_search -d '
{
"_source": [
"file.filename", "file.*"
],
"query": {
"range": {
"file.filesize": {
"gte" : 95000, "lte": 100000
}
}
}
}'
Response:
{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":1.0,"hits":[{"_index":"myjob","_type":"doc","id":"hR-4kmYBZhmfS1VuNCc ","_score":1.0,"_source":{"file":{"extension":"html","filename":"indexing.html","content_type":"text/html; charset=UTF-8","indexing_date":"2018-07-08T09:08:49.237+0000","filesize":96014,"last_modified":"2018-07-08T08:56:05.000+0000","url":"file:///tmp/es/indexing.html"}}}]}}kananinja@kananinjapc:~/Documents/PROJECTS/elastic/issue$
- Example2 - not found
Request
curl -H "Content-type: application/json" localhost:9200/_search -d '
{
"_source": [
"file.filename", "file.*"
],
"query": {
"range": {
"file.filesize": {
"gte" : 97000, "lte": 100000
}
}
}
}'
Response
{"took":3,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits": }}
1 Like
mohsen
(mohsen zanjani)
October 21, 2018, 7:55am
4
Thanks guys ...
This link is also useful:
query-string-with-range
The query should be like this:
GET /_search
{
"_source": [
"file.*"
],
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "all"
}
},
{
"range": {
"file.filesize": {
"gte": 900,
"lte": 100000
}
}
}
]
}
},
"sort": {
"_score": {
"order": "desc"
}
}
}
system
(system)
Closed
November 18, 2018, 7:55am
5
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.