I publish my own answer :)

so following the exemple 
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/custom-analyzers.html

you can add custom analyzers simply at the index creation :)

        $indexParams['body'] = $this->config['indexsetting'];
        $result = $this->client->indices()->create($indexParams);

given that for example, $this->config['indexsetting'] is the following yaml 
(that have to be converted in php array) :

indexsetting:
    analysis:
        analyzer:
            nom_analyzer:
                type: custom
                tokenizer: standard
                filter: [ trim, lowercase, asciifolding ]





Le lundi 23 juin 2014 14:44:49 UTC+2, Olivier Revollat a écrit :
>
> Hello I currently creating an elasticsearch extension for Bolt (a [very 
> cool] symfony2 based CMS).
> For the PHP client i'm using elasticsearch-php.
>
> Great ! I already wrote the code that create the index, mapping and add 
> some data :)
>
> Now I would like to customize the analyzer, so OK in the mapping I could 
> tell (as described in 
> http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/current/_index_operations.html)
>  
> :
>
>
> $myTypeMapping = array(
>     '_source' => array(
>         'enabled' => true
>     ),
>     'properties' => array(
>         'first_name' => array(
>             'type' => 'string',
>             'analyzer' => '*whatever_analyzer*'
>         ),
>         'age' => array(
>             'type' => 'integer'
>         )
>     )
> );
>
>
> But I don't really understand* how/where to declare the so called 
> **whatever_analyzer 
> *Instead of the default "standard" analyzer ... can you point me to the 
> example in the documentation ?
>
> For example, if I want this kind of analyzers, how ca I declare this with 
> elasticsearch-php ?
>
>                         analyzer:
>                             default_index:
>                                 type: "custom"
>                                 char_filter: html_strip
>                                 tokenizer: "standard" # 
> "my_edge_ngram_tokenizer"
>                                 filter: [ trim, lowercase, stop_fr, 
> fr_stemmer, my_edge_ngram_filter, asciifolding ]
>                             default_search:
>                                 type: custom
>                                 tokenizer: standard
>                                 filter: [ trim, lowercase, stop_fr, 
> fr_stemmer, asciifolding ]
>                             mots_clefs:
>                                 type: "custom"
>                                 tokenizer: "keyword"
>                                 filter: [ standard, trim, lowercase, 
> asciifolding ]
>                         filter:
>                             my_edge_ngram_filter:
>                                 type: "edgeNGram"
>                                 min_gram: "3"
>                                 max_gram: "20"
>                             stop_fr:
>                                 type: "stop"
>                                 stopwords: [ _french_ ]
>                             fr_stemmer:
>                                 type: "stemmer"
>                                 name: "french"
>
>
>
> Thanks :)
>
>

-- 
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/c8528a5d-18e5-4017-9708-329ab133386d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to