EDIT 1 ;

this seem to work for begining :

curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
    "fields" : ["E_EVENTID", "O_CATALOGNUMBER", "O_RECORDNUMBER"],
    "query" : {
        "bool" : {
            "must" : [
                {
                    "query_string":{"query" : "O_CATALOGNUMBER:P000023*"}
                },
                {
                    "query_string":{"query" : 
"O_RECORDNUMBER:recordnumber236*"}
                },
                {
                    "range" : {
                        "E_EVENTID" : {
                            "gte" : 36,
                            "lte" : 60
                        }
                    }
                }
            ]
        }
    },
    "highlight": {"pre_tags": ["<strong>"], "post_tags": ["</strong>"], 
"fields": {"*": {}}},
    "facets": {
       "lifestage": {"terms": {  "field": "O_LIFESTAGE", "size": 20}},
       "sex": {"terms": {"field": "O_SEX", "size": 20}},
       "continent": {"terms": {"field": "L_CONTINENT", "size": 20}},
       "institutioncode": {"terms": {"field": "I_INSTITUTIONCODE", "size": 
20  }}
    }
}'    

Le lundi 1 septembre 2014 11:56:42 UTC+2, alain ibrahim a écrit :
>
> Hello
>
> I'm quite new on elasticsearch.
>
> I made a form who query an elasticsearch document for getting the datas.
>
> In the form there is mutiple input : 
>     image_yes : checkbox
>     NAME : string
>     COLLECTION : string
>     CATALOGNUMBER:string
>     RECORDNUMBER: string
>     LOCALISATION: string
>     EVENTID : integer
>     event_date_start:  year  integer
>     event_date_end:    year integer
>
>
> the search is general: on all the fields of the document
> I made many simples queries who works but i can't make a complexe one 
> working with AND and RANGE. All the exemples i see use "match_all:{}". 
> I also need the use of "*" and "?" in the query.
>
> *this work ok:*
>
> curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
>     "fields" : ["EVENTID", "CATALOGNUMBER", "RECORDNUMBER"],
>     "query" : {
>         "query_string" : {
>             "query" : "CATALOGNUMBER:P000023*"
>              
>         }         
>     }
> }'
>
>
> curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
>     "fields" : ["EVENTID", "CATALOGNUMBER", "RECORDNUMBER"],
>     "query" : {
>         "filtered" : {
>             "filter" : {
>                 "range":{"EVENTID": {"from" : 36,
>                             "to" : 50,
>                             "include_lower" : true,
>                             "include_upper" : false}
>                         }
>             } 
>         }
>     }
> }'
>
> *this working ok too:*
>
> curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
>     "fields" : ["EVENTID", "CATALOGNUMBER", "RECORDNUMBER"],
>     "query" : {
>         "bool" : {
>             "must" : [
>                 {
>                     "query_string":{"query" : "CATALOGNUMBER:P000023*"}
>                 },
>                 {
>                     "query_string":{"query" : 
> "RECORDNUMBER:recordnumber236*"}
>                 }        
>             ]
>         }
>     },
>     "highlight": {"pre_tags": ["<strong>"], "post_tags": ["</strong>"], 
> "fields": {"*": {}}},
>     "facets": {
>        "lifestage": {"terms": {  "field": "LIFESTAGE", "size": 20}},
>        "sex": {"terms": {"field": "SEX", "size": 20}},
>        "continent": {"terms": {"field": "CONTINENT", "size": 20}},
>        "institutioncode": {"terms": {"field": "INSTITUTIONCODE", "size": 
> 20  }}
>     }
> }'
>
>
> *trying to merge but fail : *
> I need that the facets are made with the results so i can't use 
> "filtering" if i understand good.
> I try many syntaxes but nothink good.
>
>
> (error)
> curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
>     "fields" : ["EVENTID", "CATALOGNUMBER", "RECORDNUMBER"],
>     "query" : {
>         "filtered" : {
>             "filter" : {
>                 "range":{"EVENTID": {"from" : 36,
>                             "to" : 50,
>                             "include_lower" : true,
>                             "include_upper" : false}
>                         }
>             },
>             "query_string" : {
>                 "query" : "CATALOGNUMBER:P000023*"           
>             }
>         }
>     },
>     "highlight": {"pre_tags": ["<strong>"], "post_tags": ["</strong>"], 
> "fields": {"*": {}}},
>     "facets": {
>        "lifestage": {"terms": {  "field": "LIFESTAGE", "size": 20}},
>        "sex": {"terms": {"field": "SEX", "size": 20}},
>        "continent": {"terms": {"field": "CONTINENT", "size": 20}},
>        "institutioncode": {"terms": {"field": "INSTITUTIONCODE", "size": 
> 20  }}
>     }
> }'
> error : 
> curl -XGET 'localhost:9200/donnees/specimens/_search?pretty=true' -d '{
>     "fields" : ["EVENTID", "CATALOGNUMBER", "RECORDNUMBER"],
>     "query" : {
>         "filtered" : {
>             "filter" : {
>                 "range":{"EVENTID": {"from" : 36,
>                             "to" : 50,
>                             "include_lower" : true,
>                             "include_upper" : false}
>                         }
>             }
>         },         
>         "query_string" : { "query" : "CATALOGNUMBER:P000023*" }
>     },
>     "highlight": {"pre_tags": ["<strong>"], "post_tags": ["</strong>"], 
> "fields": {"*": {}}},
>     "facets": {
>        "lifestage": {"terms": {  "field": "LIFESTAGE", "size": 20}},
>        "sex": {"terms": {"field": "SEX", "size": 20}},
>        "continent": {"terms": {"field": "CONTINENT", "size": 20}},
>        "institutioncode": {"terms": {"field": "INSTITUTIONCODE", "size": 
> 20  }}
>     }
> }'
>
>
>
> how can i put a AND query with Range please ?
>
> I whish somethink like this in pseudo sql:
>
> select * from document where : 
>     image_yes is true
>     AND NAME : "name"
>     AND COLLECTION : "collection*"
>     AND  CATALOGNUMBER:"catalognumber*" 
>     AND  RECORDNUMBER:"recordnumber*"
>     AND LOCALISATION:  "localisation"
>     AND
>       "range":{"EVENTID": {"from" : 36,   "include_lower" : true          
>             }
>    AND  
>     "range":{" event_date": {"from" :  event_date_start,
>                             "to" : event_data_end,
>                             "include_lower" : true,
>                             "include_upper" : false}
>                         }
>
>
> Many thanks
> Alain
>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/cb885e1e-8db5-4001-abf9-e24fc7839913%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to