You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This module provides the ability to index content for a Silverstripe Search engine through the 🌈 Bifröst - the API for
4
-
Silverstripe's Search service.
3
+
This module provides the ability to index content for a Silverstripe Search engine through the 🌈 Bifröst - the API for Silverstripe's Search service.
5
4
6
-
This module **does not** provide any method for performing searches on your engines. See the [Searching](#searching)
7
-
section below for some suggestions.
5
+
This module **does not** provide any method for performing searches on your engines. See the [Searching](#searching) section below for some suggestions.
> For all intents and purposes, "engine" and "index" are synonomous. If we refer to something as "engine", but the Discoverer module is asking for an "index", then you simply need to give it the data you have for your engine.
32
30
33
-
The Discoverer module is built to be service agnostic; meaning, you can use it with any search provider, as long as
34
-
there is an adaptor (like this module) for that service.
31
+
The Discoverer module is built to be service agnostic; meaning, you can use it with any search provider, as long as there is an adaptor (like this module) for that service.
35
32
36
-
When Discoverer refers to an "index", it is talking about the data store used for housing your content. These data
37
-
stores are known by different names across different search providers. Algolia and Elasticsearch call them "indexes",
38
-
Typesense calls them "collections", App Search calls them "engines". Discoverer had to call them **something** in its
39
-
code, and it chose to call then "indexes"; Silverstripe Search, however, calls them "engines".
33
+
When Discoverer refers to an "index", it is talking about the data store used for housing your content. These data stores are known by different names across different search providers. Algolia and Elasticsearch call them "indexes", Typesense calls them "collections", App Search calls them "engines". Discoverer had to call them **something** in its code, and it chose to call then "indexes"; Silverstripe Search, however, calls them "engines".
34
+
35
+
Actions apply in the same way to all of the above. In Silverstripe Search, the action of "indexing" is the action of adding data to your engine, where it is said to be "indexed". Updating that data is commonly referred to as "re-indexing".
40
36
41
37
## Specify environment variables
42
38
43
-
To integrate with Silverstripe Search, define environment variables containing your endpoint, engine prefix, and
44
-
management API key.
39
+
To integrate with Silverstripe Search, define environment variables containing your endpoint, engine prefix, and management API key.
45
40
46
41
```
47
42
BIFROST_ENDPOINT="https://abc.provided.domain"
@@ -67,22 +62,16 @@ For example:
67
62
68
63
**Why?**
69
64
70
-
Because you probably have more than one environment type that you're running search on (e.g. Production and UAT), and
71
-
(generally speaking) you should have different engines for each of those environments. So, you can't just hardcode
72
-
the entire engine name into your project, because that code doesn't change between environments.
65
+
Because you probably have more than one environment type that you're running search on (e.g. Production and UAT), and (generally speaking) you should have different engines for each of those environments. So, you can't just hardcode the entire engine name into your project, because that code doesn't change between environments.
73
66
74
-
Whenever you make a query, Forager will ask you for the "index" name; you will actually want to provide only the
75
-
`<suffix>`. We will then take `BIFROST_ENGINE_PREFIX` and your `<suffix>`, put them together, and that's what will be
76
-
queried. This allows you to set `BIFROST_ENGINE_PREFIX` differently for each environment, while having your `<suffix>`
77
-
hardcoded in your project.
67
+
Whenever you make a query, Forager will ask you for the "index" name; you will actually want to provide only the `<suffix>`. We will then take `BIFROST_ENGINE_PREFIX` and your `<suffix>`, put them together, and that's what will be queried. This allows you to set `BIFROST_ENGINE_PREFIX` differently for each environment, while having your `<suffix>` hardcoded in your project.
78
68
79
69
## Configuration
80
70
81
71
> [!WARNING]
82
72
> Once you add a field to an index you cannot change its name or type without deleting the engine so choose field names and set their types carefully
83
73
84
-
The most notable configuration surface is the schema, which determines how data is stored in your index. There are five
85
-
types of data supported:
74
+
The most notable configuration surface is the schema, which determines how data is stored in your index. There are five types of data supported:
Firstly, you will need to set this environment variable. This will apply an extension to the `File` class, and allow
126
-
you to use the `_attachment` field (detailed below).
113
+
Firstly, you will need to set this environment variable. This will apply an extension to the `File` class, and allow you to use the `_attachment` field (detailed below).
127
114
128
115
```yaml
129
116
SEARCH_INDEX_FILES=1
130
117
```
131
118
132
-
Silverstripe Search supports content extraction for many different file types. These can be attached to your Documents
133
-
using an `_attachment` field of type `binary`.
119
+
Silverstripe Search supports content extraction for many different file types. These can be attached to your Documents using an `_attachment` field of type `binary`.
134
120
135
121
This field needs to contain a base 64 encoded string of binary for the file you wish to process.
0 commit comments