5
5
use Mdiyakov \DoctrineSolrBundle \Config \Config ;
6
6
use Mdiyakov \DoctrineSolrBundle \Query \SuggestQueryBuilder ;
7
7
use Mdiyakov \DoctrineSolrBundle \Suggester \ClassSuggester ;
8
+ use Mdiyakov \DoctrineSolrBundle \Suggester \SchemaSuggester ;
8
9
9
10
class SuggesterManager
10
11
{
@@ -13,6 +14,11 @@ class SuggesterManager
13
14
*/
14
15
private $ classSuggesters = [];
15
16
17
+ /**
18
+ * @var SchemaSuggester[]
19
+ */
20
+ private $ schemaSuggesters = [];
21
+
16
22
/**
17
23
* @param Config $config
18
24
* @param SuggestQueryBuilder $queryBuilder
@@ -29,15 +35,15 @@ public function __construct(Config $config, SuggestQueryBuilder $queryBuilder)
29
35
$ queryBuilder ->buildClassSuggestQuery ($ entityClass )
30
36
);
31
37
}
32
- /*
38
+
33
39
$ entitySchemaName = $ entityConfig ['schema ' ];
34
- if (!array_key_exists($entitySchemaName, $this->schemaFinders )) {
35
- $this->schemaFinders [$entitySchemaName] = new SchemaFinder (
36
- $queryBuilder,
37
- $config->getSchemaByEntityClass($entityClass),
38
- $config
40
+ if (!array_key_exists ($ entitySchemaName , $ this ->schemaSuggesters )) {
41
+ $ this ->schemaSuggesters [$ entitySchemaName ] = new SchemaSuggester (
42
+ $ queryBuilder-> buildSchemaSuggestQuery (
43
+ $ config ->getSchemaByEntityClass ($ entityConfig [ ' class ' ])
44
+ )
39
45
);
40
- }*/
46
+ }
41
47
}
42
48
}
43
49
@@ -56,4 +62,21 @@ public function getClassSuggester($class)
56
62
57
63
return $ this ->classSuggesters [$ class ];
58
64
}
65
+
66
+
67
+ /**
68
+ * @param string $schema
69
+ * @return SchemaSuggester
70
+ * @throws \InvalidArgumentException
71
+ */
72
+ public function getSchemaSuggester ($ schema )
73
+ {
74
+ if (!array_key_exists ($ schema , $ this ->schemaSuggesters )) {
75
+ throw new \InvalidArgumentException (
76
+ sprintf ('Schema suggester %s is not found ' , $ schema )
77
+ );
78
+ }
79
+
80
+ return $ this ->schemaSuggesters [$ schema ];
81
+ }
59
82
}
0 commit comments