Dynamique mapping dans les river JDBC (pg)


(Samuel BERTHE) #1

Bonjour,

Je rencontre un problème avec le mapping de la JDBC river. Le contenu aspiré par Elasticsearch est une string, et contient parfois du JSON (plain text).

J'ai besoin de faire des recherches fulltext sur ce contenu. J'ai donc configuré le mapping suivant :

        "body": {
            "type": "string",
            "index": "analyzed",
            "analyzer": "english",
            "store": true
        }

Cependant, la river semble interpréter le JSON. Elasticsearch m'envoie donc une exception MapperParsingException.
J'ai rajouté à la river un type_mapping pour forcer le type :

 "type_mapping": {
        "my-type": {
            "properties" : {
                "body": { "type": "string", "index": "analyzed", "analyzer": "english" }
            }
        }
    }

Toujours la même erreur.
Connaissez-vous l'origine de cet erreur ? Peut-on désactiver le mapping de la river ?

Merci !


(David Pilato) #2

Tu veux dire que même si tu as déjà forcé le mapping la river essaye de reforcer en autre chose ?

Tu as fait quoi exactement?


(Samuel BERTHE) #3

Salut David,

C'est exactement ça. J'ai essayé plusieurs choses.
Par exemple, mettre l'index à not_analyzed, mais toujours la même chose.

Les seules configurations que j'ai faites concernent les rivers, la création d'un index et de plusieurs types.

{
    "interval": "15s",
    "max_bulk_actions": "10000",
    "timezone": "UTC/GMT",
    "type": "jdbc",
    "jdbc": {
        "url": "##############",
        "user": "############",
        "password": "#############",
        "sql": "SELECT *, pid AS _id FROM posts",
        "index": "index1",
        "type": "typeA",
        "index_settings": {
            "index" : {
                "refresh_interval" : "30s"
            }
        },
        "type_mapping": {
            "typeA": {
                "properties" : {
                    "title": { "type": "string", "index": "analyzed", "analyzer": "english" },
                    "body": { "type": "string", "index": "analyzed", "analyzer": "english" }
                }
            }
        }
    }
}


{
    "typeA": {
        "_id": {
            "path": "pid",
            "index": "no"
        },
        "_timestamp": {
            "enabled": true,
            "path": "createdAt",
            "format": "dateTime"
        },
        "properties": {
            "title": {
                "type": "string",
                "index": "analyzed",
                "analyzer": "english",
                "store": true
            },
            "body": {
                "type": "string",
                "index": "analyzed",
                "analyzer": "english",
                "store": true
            }
        }
    }
}

ES 1.4.1
JDBC river postgres 1.4.0.10

Thanks


(David Pilato) #4

Tu peux lister exactement les commandes que tu passes et dans l' ordre ?


(system) #5