* 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
104 lines
1.9 KiB
JSON
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"
|
|
}
|
|
}
|
|
}
|
|
}
|