Commit Graph

84 Commits

Author SHA1 Message Date
Eric Peterson 8006f8a602 Tag indexing logs with document type
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-10-10 18:02:33 +02:00
Camila Belo 60a912cd2c Rename param to page limit and validate its type
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-10-04 10:54:09 +02:00
Emma Indal 814c8a61f6 Search engines to use resultPerPage param if provided
Co-authored-by: Camila Loiola <camilaibs@gmail.com>
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-10-04 10:54:09 +02:00
Fredrik Adelöw aaab1e34da Fix linting errors after #13392
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2022-08-30 13:44:09 +02:00
Emma Indal 0c42005843 Merge pull request #13297 from swenhan/master
Fix in-doc search no result when title has stopwords
2022-08-29 11:05:31 +02:00
Seow Wen Han 5e14cea98b Fix in-doc search not working when stopword is in title (#1)
* Trying to reproduce stop-word error but couldn't

* Update and add appropriate test case for stop-word testing

* Implement fix for stopword in title, add unit test case

Signed-off-by: Seow Wen Han <wseow@seekasia.com>
2022-08-23 14:10:50 +08:00
Fredrik Adelöw 3f739be9d9 more api cleanup
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2022-08-18 15:16:19 +02:00
Emma Indal f22df2248d delete deprecations
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-07-18 10:09:01 +02:00
Camila Belo dcba440459 refactor: apply review suggestions
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-07-05 12:02:21 +02:00
Camila Belo 06f9999f4b feat(search-backend-node): check types in error handling
Co-authored-by: Emma Indal <emma.indahl@gmail.com>
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-06-28 13:47:58 +02:00
Camila Belo 8e63e71b2c feat(search-backend-node): improve error handling
Co-authored-by: Emma Indal <emma.indahl@gmail.com>
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2022-06-28 11:59:49 +02:00
Emma Indal 34c97eb35b switch to use .json instead of .send
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-22 14:06:09 +02:00
Emma Indal 18dad948a1 add custom search error
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-20 15:46:35 +02:00
Eric Peterson c7ce7b1eb0 Test rank handling in all search engines.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-06-10 15:36:11 +02:00
Eric Peterson 915700f64f Set a pagination-aware rank value for all search engines.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-06-10 15:36:11 +02:00
Emma Indal 2e6b24d537 clean up api report for search-backend-node package
Signed-off-by: Emma Indal <emma.indahl@gmail.com>
2022-06-02 12:02:00 +02:00
Eric Peterson 3bb25a9acc Initial implementation of a generic ndjson collator.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-05-30 19:30:56 +02:00
Camila Belo 3345dbf84b Merge pull request #11523 from cowboyd/propagate-index-failure
Don't swallow indexing failures
2022-05-18 16:00:38 +02:00
Charles Lowell bde1631c83 Don't swallow indexing failures
When an error occurs in the indexer pipeline, it logs it out, and then
drops it on the floor. This is problematic because externally, from
the task scheduler's perspective, it appears to have succeeded, which
is not true.

As a result, these failures are invisible to tooling which introspects
over tasks.

This makes the index task promise resolve when the pipeline finishes as
before, but it rejects if the pipeline failed.

Signed-off-by: Charles Lowell <cowboyd@frontside.com>
2022-05-16 15:48:37 +03:00
Fredrik Adelöw 16dcf2a807 Merge pull request #10981 from kuangp/feat/search/highlight
feat(search): highlight search result terms
2022-05-09 18:27:07 +02:00
Phil Kuang 3a74e203a8 feat(search): highlight search result terms
Signed-off-by: Phil Kuang <pkuang@factset.com>
2022-05-09 11:13:34 -04:00
Eric Peterson 71d3432710 Set the default batchSize to 1000 for all search engines.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-05-01 16:19:58 +02:00
Phil Kuang 0a63e99a26 feat(search): handle search indexing coordination among nodes
Signed-off-by: Phil Kuang <pkuang@factset.com>
2022-04-06 14:03:04 -04:00
Eric Peterson 1cd678be2b Fix tsc errors in search-backend-node
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-04-04 16:01:13 +02:00
Patrik Oldsberg 850e0ebbe3 search-backend-node: update runPeriodically test to work with jest 27
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2022-03-25 11:28:14 +01:00
Mike Lewis d07ed471dc search-backend-node: use new IndexableResultSet type as return type of engine#query
Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
2022-03-17 12:39:42 +00:00
Dimitris Apostolou aedd4daa66 Fix typos
Signed-off-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>
2022-03-13 14:12:05 +02:00
Eric Peterson 3e54f6c436 Use @backstage/plugin-search-common instead of @backstage/search-common
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-04 18:47:55 +01:00
Eric Peterson 0547246b84 Clean up search-common/search-backend-node APIs, indicating beta.
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:29:18 +01:00
Eric Peterson a151cf2a88 Finalize exports for search-backend-node module
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:58 +01:00
Eric Peterson c87be57d3a Update LunrSearchEngine to be stream-based
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:57 +01:00
Eric Peterson cef19ee966 Introduce a base classes to simplify stream-based implementations
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:57 +01:00
Eric Peterson ce3f566e9c Introduce test utilities for stream-based search implementations
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:57 +01:00
Eric Peterson 2eae26293e Update IndexBuilder to be a stream pipeline
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:57 +01:00
Eric Peterson 804c7906cf Update core search types to be stream-based
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
2022-03-02 17:26:56 +01:00
MT Lewis 634abc1a41 search: move DocumentTypeInfo to search-common
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:40 +00:00
MT Lewis f6389e9e5d search-backend-node: track document visibility permission by type in IndexBuilder
Tracking permissions by collator ensures that all the documents of a
given type are authorized using the same permission. This is not
critical for result-by-result authorization, but will likely be a
useful constraint when adding in-engine permission filtering to
specific search engines in the future.

Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2022-01-25 13:01:38 +00:00
Fredrik Adelöw 5333451def Got rid of the last brace-typed and hyphen-less params etc
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2022-01-10 09:48:12 +01:00
Tomasz Szuba 428061d7e5 Add tests
Signed-off-by: Tomasz Szuba <tszuba@box.com>
2021-10-21 14:04:58 +02:00
Tomasz Szuba 0de67c4d2a Handle single-item array filter in Lunr search engine
Signed-off-by: Tomasz Szuba <tszuba@box.com>
2021-10-21 13:54:44 +02:00
Patrik Oldsberg 8142a8ecb2 packages,plugins: add package documentation
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2021-09-14 18:47:53 +02:00
Oliver Sand 532b4cc656 Rework search paging based on cursors
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-09-02 10:22:41 +02:00
Oliver Sand 3abef1177e Implement offset and limit based paging in Lunr search engine
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-09-02 10:19:32 +02:00
Jussi Hallila d9c13d535b Implement ElasticSearch search engine
* Adding indexing, searching and default translator for ElasticSearch engine
* Modifying default backend to use ES if it is enabled
* Adding configuration schema to configure ElasticSearch 3 different ways
   * Elastic.co hosted solution
   * AWS hosted ElasticSearch Service
   * Custom, using standard ElasticSearch URL and auth info
* Add and modify some of the documentation regarding search

Signed-off-by: Jussi Hallila <jussi@hallila.com>
2021-07-30 14:26:32 +02:00
Oliver Sand 97b2eb37b2 Change return value of SearchEngine.index to Promise<void>
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-07-09 11:26:42 +02:00
Oliver Sand d4507650bd Merge pull request #6381 from SDA-SE/feat/better-lunr-results
Build search queries using the query build in `LunrSearchEngine`
2021-07-08 11:43:28 +02:00
Oliver Sand 9f3ecb555a Build search queries using the query build in LunrSearchEngine
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-07-07 19:41:54 +02:00
Oliver Sand 0466606d84 Add test for runPeriodically
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-07-06 18:58:06 +02:00
Oliver Sand 03715ceaa4 Add comment and remove initial run
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-07-06 16:37:38 +02:00
Oliver Sand 4176a60e50 Make sure that the search scheduler doesn't run to many tasks in parallel
Signed-off-by: Oliver Sand <oliver.sand@sda-se.com>
2021-07-06 15:19:59 +02:00