Files
omnivore/packages/api/index_settings.json
Hongbo Wu ae0d1dd2ee Feature/search highlights backend (#395)
* add highlight mappings

* return highlight in resolvers

* temporarily skip highlight tests

* add test for getting highlights

* update merge highlight

* separate elastic methods

* roll back merge highlight test

* add highlight to elastic script

* update delete highlight in elastic

* migrate highlight data from postgres to elastic

* rescue not found exception when page is not found in the migration script

* exclude highlights in searching pages results

* search pages with highlights only with has:highlight query

* add search endpoint to search pages or highlights

* reduce code smell in search api

* fix rebase error

* fix tests

* add test for search highlight

* add test for new search endpoint

* add labels to search results

* update schema

* update search query

* fix update/share highlights

* fix rebase error

* fix tests

* add highlight model in elastic

* add savedAt and publishedAt date range in search query

* add sort by updated and recently read

* fix tests

* close db connection when tests are done

* test github action

* revert github action test

* fix rebase error

* add docker-compose for api-test

* remove unused env

* remove highlights with no page attached to

* allow get_articles resolver to search for query so we can merge it without web changes
2022-04-12 12:31:08 +08:00

104 lines
1.9 KiB
JSON

{
"aliases": {
"pages_alias": {}
},
"settings": {
"analysis": {
"analyzer": {
"strip_html_analyzer": {
"tokenizer": "standard",
"char_filter": ["html_strip"]
}
},
"normalizer": {
"lowercase_normalizer": {
"filter": ["lowercase"]
}
}
}
},
"mappings": {
"properties": {
"userId": {
"type": "keyword"
},
"title": {
"type": "text"
},
"author": {
"type": "text"
},
"description": {
"type": "text"
},
"content": {
"type": "text",
"analyzer": "strip_html_analyzer"
},
"url": {
"type": "keyword"
},
"uploadFileId": {
"type": "keyword"
},
"pageType": {
"type": "keyword"
},
"slug": {
"type": "keyword"
},
"labels": {
"type": "nested",
"properties": {
"name": {
"type": "keyword",
"normalizer": "lowercase_normalizer"
}
}
},
"highlights": {
"type": "nested",
"properties": {
"id": {
"type": "keyword"
},
"userId": {
"type": "keyword"
},
"quote": {
"type": "text",
"analyzer": "strip_html_analyzer"
},
"annotation": {
"type": "text"
},
"createdAt": {
"type": "date"
},
"updatedAt": {
"type": "date"
}
}
},
"readingProgressPercent": {
"type": "float"
},
"readingProgressAnchorIndex": {
"type": "integer"
},
"createdAt": {
"type": "date"
},
"savedAt": {
"type": "date"
},
"archivedAt": {
"type": "date"
},
"siteName": {
"type": "text"
}
}
}
}