Bonjour,
ça fait quelques jours que je galère à intégrer le SolrBundle de Florian Semm. Après avoir bataillé pour installé l'extension php solr sous wamp, configurer Solr pour qu'il tape dans ma base de donnée MySQL (qui d'ailleurs index bien et trouve quand je recherche tous, "*:*", mais ne trouve rien dès que je recherche un mot précis, je sais pas si ça peut avoir un rapport mais je me pencherai sur ce problème plus tard) et installé et configuré le SolrBundle.
Pour info j'utilise tomcat en localhost sur le port 8080.
Mon config.yml ressemble à ça :
Mon url Solr :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 # Solr Configuration fs_solr: solr: hostname: localhost port: 8080 path: collection1: /solr/collection1 auto_index: true entity_manager: default
Tout d’abord je ne sais pas si le bundle créé le schema tous seul en fonction des annotations dans les entités donc pour être sur au niveau de Solr j'ai mappé mes entités autan dans la configuration de Solr (schema.xml) et dans mes entités en annotation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part http://localhost:8080/solr/#/collection1
Exemple :
Et quand j’exécute la commande :
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 <?php namespace Societe\MonBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\ExecutionContext; use FS\SolrBundle\Doctrine\Annotation as Solr; use DateTime; /** * Entité adresse * * @orm\Entity(repositoryClass="Societe\MonBundle\Model\TestRepository") * @orm\Table(name="test") * * @Solr\Document(repository="Societe\MonBundle\Model\TestRepository") * */ class Test { /** * Id * @orm\Id * @orm\generatedValue(strategy="AUTO") * @orm\Column(type="integer", nullable=false) * * @Solr\Id */ private $id; /** * Code secret d'entrée à l'adresse * @orm\Column(type="string", length=16, nullable=true) * * @Solr\Field(type="string") * * @assert\MaxLength(16) */ private $test; /** * Constructeur */ public function __construct() { } public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } public function getTest() { return $this->test; } public function setTest($test) { $this->test = $test; } }
Il me dit 4 documents non synchronisés (4 entrées en base) mais j'ai aucune erreurs et aucuns logs donc je n'arrive pas à trouvé pourquoi il ne me les synchronises pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part php app/console solr:synchronize "SocieteMonBundle:Test"
Et j'ai un deuxième soucis, sur les ids de mes entités qui ne ce nomme pas id du coup quand je mappe "@Solr\Id" il cherche à me faire un getId qui n'existe pas, existe il une solution pour personnaliser le nom de l'id dans l'annotation du SolrBundle (pas d'exemple dans la doc)
Partager