@@ -147,7 +147,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
147
147
'name ' => $ name ,
148
148
'type ' => $ field ->searchable ? 'text_general ' : 'string ' ,
149
149
'indexed ' => $ field ->searchable ,
150
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
150
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet ,
151
151
'stored ' => true , // required to be set to stored for highlighting
152
152
'useDocValuesAsStored ' => false ,
153
153
'multiValued ' => $ isMultiple ,
@@ -156,7 +156,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
156
156
'name ' => $ name ,
157
157
'type ' => 'boolean ' ,
158
158
'indexed ' => $ field ->searchable ,
159
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
159
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet ,
160
160
'stored ' => false ,
161
161
'useDocValuesAsStored ' => false ,
162
162
'multiValued ' => $ isMultiple ,
@@ -165,7 +165,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
165
165
'name ' => $ name ,
166
166
'type ' => 'pdate ' ,
167
167
'indexed ' => $ field ->searchable ,
168
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
168
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet ,
169
169
'stored ' => false ,
170
170
'useDocValuesAsStored ' => false ,
171
171
'multiValued ' => $ isMultiple ,
@@ -174,7 +174,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
174
174
'name ' => $ name ,
175
175
'type ' => 'pint ' ,
176
176
'indexed ' => $ field ->searchable ,
177
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
177
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet ,
178
178
'stored ' => false ,
179
179
'useDocValuesAsStored ' => false ,
180
180
'multiValued ' => $ isMultiple ,
@@ -183,7 +183,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
183
183
'name ' => $ name ,
184
184
'type ' => 'pfloat ' ,
185
185
'indexed ' => $ field ->searchable ,
186
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
186
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet ,
187
187
'stored ' => false ,
188
188
'useDocValuesAsStored ' => false ,
189
189
'multiValued ' => $ isMultiple ,
@@ -192,7 +192,7 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
192
192
'name ' => $ name ,
193
193
'type ' => 'location ' ,
194
194
'indexed ' => $ field ->searchable ,
195
- 'docValues ' => $ field ->filterable || $ field ->sortable ,
195
+ 'docValues ' => $ field ->filterable || $ field ->sortable || $ field -> facet , // @phpstan-ignore-line
196
196
'stored ' => false ,
197
197
'useDocValuesAsStored ' => false ,
198
198
'multiValued ' => $ isMultiple ,
@@ -204,8 +204,8 @@ private function createIndexFields(array $fields, string $prefix = '', bool $isP
204
204
default => throw new \RuntimeException (\sprintf ('Field type "%s" is not supported. ' , $ field ::class)),
205
205
};
206
206
207
- if ($ field instanceof Field \TextField && $ field ->searchable && ($ field ->filterable || $ field ->sortable )) {
208
- // add additional raw field for field which is filterable/sortable but also searchable
207
+ if ($ field instanceof Field \TextField && $ field ->searchable && ($ field ->filterable || $ field ->sortable || $ field -> facet )) {
208
+ // add additional raw field for field which is filterable/sortable/facet but also searchable
209
209
$ fieldSettings = $ indexFields [$ name ];
210
210
211
211
$ fieldSettings ['name ' ] = $ name . '.raw ' ;
0 commit comments