Bonjour,

J'utilise FOSElasticaBundle, et j'e'ssaye de faire une requete qui me ramenera tous les objets ayant pour thème une certaine valeur.

Mon code de repository :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    public function search(IdeeSearch $ideeSearch)
    {
        $query_part = new \Elastica\Query\MatchAll();
        $filters = new \Elastica\Filter\Bool();
 
        if($ideeSearch->getTheme() !== null){
            $filters->addMust(
                new \Elastica\Filter\Term(array('theme'=>$ideeSearch->getTheme()->getNom()))
            );
        }
 
        $filtered = new \Elastica\Query\Filtered($query_part, $filters);
        return $this->find($filtered,50);
C'est assez simple et ca me génère des requetes de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
{"query":{"filtered":{"query":{"match_all":{}},"filter":{"term":{"theme":"Economie"}}}},"size":50}
A priori, ca devrait fonctionner, mais dés que j'ai un thème de défini, je n'ai plus aucun résultat, quelque soit le thème.

Voici mon fichier config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
types:
                Idee:
                    mappings:
                        id:
                            type: integer
                        updatedAt :
                            type : date
                        lastAction :
                            type : date
                        theme : 
                            properties:
                                id : 
                                    type : integer
                        localisations: 
                            type: "nested"
                            properties:
                                id : 
                                    type : integer
                        localisationsNiveau0: ~
                        localisationsNiveau1: ~
                        localisationsNiveau2: ~
                        localisationsNiveau3: ~
                        isVisible :
                            type : boolean
                        countCommentaires:
                            type: integer
                        title : { analyzer: custom_french_analyzer }
                        description : { analyzer: custom_french_analyzer }
                        content : { analyzer: custom_french_analyzer }
                    persistence:
                        driver: orm # orm, mongodb, propel are available
                        model:  JaiUneIdee\SiteBundle\Entity\Idee
                        provider: ~
                        listener: ~ # by default, listens to "insert", "update" and "delete"
                        finder: ~
                        repository: JaiUneIdee\SiteBundle\SearchRepository\IdeeRepository
Est-ce que vous y voyez plus clair que moi ?
Merci,
Pierre

PS : j'ai essayé en mettant l'id au lieu du nom pour le thème, même résultat. (le nom est stocké dans ES, donc c'est pour ca que je l'utilise)