J'ai un mappage d'index comme suit :

Demande

|-> tilte 
|-> countryCode
|-> isOpen
|-> location
|-> date

Je veux faire bool et geoquery en même temps récupérer les docs dans le même pays et près de chez moi aussi que isOpen j'ai essayé ci-dessous mais j'obtiens toujours un objet hits vide.

{   "from" : 5,
    "size": 5,
    "query": {
        "bool" : {
            "must" : [
                {"match" : {"countryCode": "US"}},
                {"match": {"isOpen": true }}
            ],
            "filter" : {
                "geo_distance" : {
                    "distance" : "150km",
                    "location" : {
                        "lat" : 1111111111,
                        "lon" : 3333333333
                        }
                }
            }
        }
    },

    "sort": [ { "date" : {"order" : "desc"} } ]
 }

La réponse

{
    "took": 8,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": null,
        "hits": []
    }
}

Même si je suis sûr qu'il existe de nombreux documents correspondant à la requête, mais je ne peux pas l'obtenir. Quelqu'un peut-il aider?

0
user12281762 17 févr. 2020 à 19:43

1 réponse

Meilleure réponse

Je commencerais par changer la valeur from de 5 à 0. Ensuite, je vérifierais la définition de l'index - êtes-vous sûr que chacun des champs peut être recherché de la manière dont vous l'utilisez ? Pouvez-vous afficher la définition exacte de l'index (mappage) et afficher un exemple d'élément d'Elastic ?

0
djaszczurowski 17 févr. 2020 à 16:54