elastisch zoeken – is het mogelijk om meerdere indexen te doorzoeken?

Ik heb een Elasticsearch-cluster met 3 indexen:

/users/user
/events/visit
/events/register
/pages/page

Dus nu moet ik query’s uitvoeren die meerdere indexen verwerken.

Bijv.: Haal het geslacht van gebruikers op die zijn geregistreerd op pagina X.
(Om deze informatie te krijgen, heb ik informatie uit meerdere indexen nodig.)

Is dit mogelijk? Misschien hadoop integreren?


Antwoord 1, autoriteit 100%

Dit is vrij eenvoudig binnen Elasticsearch zelf! Telkens wanneer u een index opgeeft, kunt u aanvullende indices scheiden door komma’s.

curl -XGET 'http://localhost:9200/index1,index2/_search?q=yourQueryHere'

Je kunt ook in alle indexen zoeken met _all.

curl -XGET 'http://localhost:9200/_all/_search?q=yourQueryHere'

Hier is wat nuttige documentatie van de website van elasticsearch. Deze site heeft VEEL informatie, maar het is soms een beetje moeilijk te vinden, IMO.

https://www.elastic.co/ guide/nl/elasticsearch/reference/current/search-search.html
https://www.elastic.co/guide/en /elasticsearch/reference/current/multi-index.html


Antwoord 2, autoriteit 9%

Door onze zoekopdracht niet te beperken tot een bepaalde index of type, hebben we in alle documenten in het cluster gezocht. Elasticsearch heeft de zoekopdracht parallel doorgestuurd naar een primaire of replica van elke shard in het cluster.

      1)/users,events,pages/_search : Search all types in the users,events and pages
       2)/u*,e*,p*/_search : Search all types in any indices beginning with u,e or beginning with p
       3)/events/visit,register/_search : Search types visit and register in the events index
       4) /_all/user,visit,register,page/_search : Search types users,events and pages in specified indices

Antwoord 3

Het is mogelijk om zoekopdrachten uit te voeren via meerdere indexen:

bijvoorbeeld:

curl -X POST \
'http://localhost:9200/test1,test2/_search?pretty=' \
-H 'Content-Type: application/json' -d '{
    "query": {
    ...
    }
}
'

Other episodes