2016-04-15 10 views
0

Ich verwende PySpark mit Elasticsearch mit dem Elasticsearch-Hadoop-Connector. Ich kann von einem gewünschten Index lesen mit:PySpark + ElasticSearch: Lesen von mehreren Index/Typ

es_read_conf = { 
     "es.nodes": "127.0.0.1", 
     "es.port": "9200", 
     "es.resource": "myIndex_*/myType" 
    } 
    conf = SparkConf().setAppName("devproj") 
    sc = SparkContext(conf=conf) 

    es_rdd = sc.newAPIHadoopRDD(
     inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat", 
     keyClass="org.apache.hadoop.io.NullWritable", 
     valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable", 
     conf=es_read_conf 
    ) 

Funktioniert gut. Ich kann den Index mit einem Platzhalter versehen.

Wie kann ich das Dokument "Typ" mit einem Platzhalter versehen? Oder, wie könnte ich mehr als einen Typ oder sogar _all bekommen?

Antwort

2

Für alle Typen können Sie "es.resource" verwenden: "myIndex_ *".

Für den Platzhalter Teil einer Abfrage benötigen würde:

 "prefix": { 
     "_type": { 
      "value": "test" 
     } 
     } 
+0

in Ordnung, arbeitete diese. Wenn ich den "Typ" weglasse, wird "alle Typen" ausgewählt – cybergoof

Verwandte Themen