|
1 | | -# 🧭 Silverstripe Discoverer > Search Query module |
| 1 | +# 🧭 Silverstripe Discoverer > Search query module |
2 | 2 |
|
3 | 3 | * [Purpose](#purpose) |
4 | 4 | * [Delivery](#delivery) |
|
10 | 10 |
|
11 | 11 | ## Purpose |
12 | 12 |
|
13 | | -To provide you (a Silverstripe developer) with interfaces for search querying that **do not change**, even when you switch between |
14 | | -different search service providers. |
| 13 | +To provide you (a Silverstripe developer) with interfaces for search querying that **do not change**, even when you |
| 14 | +switch between different search service providers (EG: Elastic, Algolia, Silverstripe Search). |
15 | 15 |
|
16 | 16 | ## Delivery |
17 | 17 |
|
18 | 18 | To deliver on our purpose, the way that you perform filtering, faceting, and certainly the way that you display |
19 | 19 | results, is very likely going to change. We hope that the learning curve is reasonable, and that the majority of |
20 | 20 | developer interactions with this code is intuative (once you understand the mentality behind it). |
21 | 21 |
|
| 22 | +You will **not** be able to perform any sort of "raw filtering" or "raw querying" with service specific formats, as that |
| 23 | +would not meet the purpose of this module - which is to use a common interface that will allow you to easily switch |
| 24 | +between services. |
| 25 | + |
| 26 | +## Installation |
| 27 | + |
| 28 | +``` |
| 29 | +composer require "silverstripe/silverstripe-discoverer" |
| 30 | +``` |
| 31 | + |
| 32 | +*Note* this module is not functional without an |
| 33 | +[integration module](#available-service-integration-modules) |
| 34 | + |
22 | 35 | ## Feature support |
23 | 36 |
|
24 | 37 | Whether or not certain features are supported **by this module**. Noting that different search providers often do things |
25 | | -in very different ways, and often have different levels of support for features. This module attempts to provide a level |
| 38 | +in different ways, and often have different levels of support for features. This module attempts to provide a level |
26 | 39 | of functionality that is commonly supported by many different services. |
27 | 40 |
|
28 | 41 | | Feature | Module support | Future module support | Rationale | |
29 | 42 | |-------------------------------------------------------------|----------------|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
30 | 43 | | Filters | Yes | Yes | You should (hopefully) be able to achieve any sort of nested filtering that you require. | |
31 | 44 | | Facets | Partial | If desired | Facet support differs hugely between search services. Current thinking is to try and limit what sort of Facet integrations we use (EG: no Geolocation) in the hopes that if we switch services in the future, we won't lose functionality | |
32 | | -| Multi-search | No | If desired | Not supported by many other search services. It wouldn't be unreasonable effort to add this functionality though. | |
| 45 | +| Multi-search | No | If desired | Not supported by many search services. It wouldn't be unreasonable effort to add this functionality though. | |
33 | 46 | | Search suggestions (aka auto-complete, "did you mean", etc) | Yes | Yes | Features like auto-complete generate a lot of requests, and for a lower tiered shared service, that is something we want to cut down on. | |
34 | 47 | | Click through logging | Yes | Yes | Supported in Elastic App Search, but not supported by many other Search Services (including Elasticsearch). This feature in particular is an example of the "silent treatment" we apply when a feature disappears between service providers | |
35 | 48 |
|
@@ -58,3 +71,8 @@ Additional documentation can also be found below: |
58 | 71 | * [Detailed querying](docs/detailed-querying.md) |
59 | 72 | * Lots more information about filters, facets, sorts, and (hopefully) everything else you need to know to perform |
60 | 73 | whatever sort of search you require. |
| 74 | + |
| 75 | +## Available service integration modules |
| 76 | + |
| 77 | +* [Silverstripe Discoverer > Elastic Enterprise Search](https://github.com/silverstripeltd/silverstripe-discoverer-elastic-enterprise) |
| 78 | +* [Silverstripe Discoverer > Silverstripe Search](https://github.com/silverstripeltd/silverstripe-discoverer-bifrost) |
0 commit comments