1
1
package com .meilisearch .sdk ;
2
2
3
3
import com .meilisearch .sdk .exceptions .MeilisearchException ;
4
- import com .meilisearch .sdk .model .*;
4
+ import com .meilisearch .sdk .model .DocumentQuery ;
5
+ import com .meilisearch .sdk .model .DocumentsQuery ;
6
+ import com .meilisearch .sdk .model .FacetSearchable ;
7
+ import com .meilisearch .sdk .model .Faceting ;
8
+ import com .meilisearch .sdk .model .IndexStats ;
9
+ import com .meilisearch .sdk .model .Pagination ;
10
+ import com .meilisearch .sdk .model .Results ;
11
+ import com .meilisearch .sdk .model .SearchResult ;
12
+ import com .meilisearch .sdk .model .Searchable ;
13
+ import com .meilisearch .sdk .model .Settings ;
14
+ import com .meilisearch .sdk .model .Task ;
15
+ import com .meilisearch .sdk .model .TaskInfo ;
16
+ import com .meilisearch .sdk .model .TasksQuery ;
17
+ import com .meilisearch .sdk .model .TasksResults ;
18
+ import com .meilisearch .sdk .model .TypoTolerance ;
5
19
import java .io .Serializable ;
6
20
import java .util .ArrayList ;
7
21
import java .util .List ;
@@ -23,6 +37,7 @@ public class Index implements Serializable {
23
37
@ ToString .Exclude protected transient Documents documents ;
24
38
@ ToString .Exclude protected transient TasksHandler tasksHandler ;
25
39
@ ToString .Exclude protected transient Search search ;
40
+ @ ToString .Exclude protected transient FacetSearch facetSearch ;
26
41
@ ToString .Exclude protected transient SettingsHandler settingsHandler ;
27
42
@ ToString .Exclude protected transient InstanceHandler instanceHandler ;
28
43
@@ -36,6 +51,7 @@ void setConfig(Config config) {
36
51
this .documents = new Documents (config );
37
52
this .tasksHandler = new TasksHandler (config );
38
53
this .search = new Search (config );
54
+ this .facetSearch = new FacetSearch (config );
39
55
this .settingsHandler = new SettingsHandler (config );
40
56
this .instanceHandler = new InstanceHandler (config );
41
57
}
@@ -411,6 +427,32 @@ public Searchable search(SearchRequest searchRequest) throws MeilisearchExceptio
411
427
return this .search .search (this .uid , searchRequest );
412
428
}
413
429
430
+ /**
431
+ * Performs a Facet Search in the index
432
+ *
433
+ * <p>Ensure that FacetName is set in the FacetSearchRequest and note that facet search requires
434
+ * attributes to the filterableAttributes list.
435
+ *
436
+ * @param facetSearchRequest FacetSearchRequest FacetSearchRequest
437
+ * @return Meilisearch API response
438
+ * @throws MeilisearchException if an error occurs
439
+ * @see <a
440
+ * href="https://www.meilisearch.com/docs/reference/api/facet_search#perform-a-facet-search">API
441
+ * specification</a>
442
+ * @see Index#getFilterableAttributesSettings() getFilterableAttributesSettings
443
+ * @see Index#updateFilterableAttributesSettings(String[]) updateFilterableAttributesSettings
444
+ * @since 1.3
445
+ */
446
+ public FacetSearchable facetSearch (FacetSearchRequest facetSearchRequest )
447
+ throws MeilisearchException {
448
+ return this .facetSearch .facetSearch (this .uid , facetSearchRequest );
449
+ }
450
+
451
+ public String rawFacetSearch (FacetSearchRequest facetSearchRequest )
452
+ throws MeilisearchException {
453
+ return this .facetSearch .rawSearch (this .uid , facetSearchRequest );
454
+ }
455
+
414
456
public String rawSearch (String query ) throws MeilisearchException {
415
457
return this .search .rawSearch (this .uid , query );
416
458
}
0 commit comments