Files
Verso/tools/migrations/20260507120000_create_libraryReferences_search_fields.mjs
Liam O'Brien b4a76fee6d [web] Implementing library search (#33604)
* Initial working version of library search

draft fetch allowing optional search param

draft debounce search

draft search bar

draft using  for search

draft search params

draft data index creation

draft prefix-regex search

draft add fields only on search

draft index setup

draft search tests

draft search tests for extra params

draft using correct display value from bib entry for tokenization

* Library search handles diacritics

* Library styling and refreshing table data without
reloading table

* Updating mongo search query and creating migration
scripts for existing data

* Using Mongo query for sorting results

* Moving copied files into shared directory

* Addressing review comments

* Pulling changes from bibtex-search-token for consistency with migration

* Fixing lint

* Using mongo collation for handling case and diacritics in search queries

* Boosting citation keys with  check for tokens

* Removing double foldLatinDigraphs call

* Matching figma designs for Library search component

* Adding cursor for paginated Library search results

* Re-fixing flash after searching library

* Unit test for cursor search

* Using same cursor object for search and get all results

* Data migration moved to manual script

GitOrigin-RevId: b7e6a1f07f775c8450dd97e7269cab3b68ca0eb3
2026-05-20 08:07:29 +00:00

33 lines
707 B
JavaScript

import Helpers from './lib/helpers.mjs'
const tags = ['saas']
const indexes = [
{
key: { userId: 1, searchKey: 1 },
name: 'userId_1_searchKey_1',
collation: { locale: 'en', strength: 1 },
},
{
key: { userId: 1, 'fields.searchValue': 1, 'fields.name': 1 },
name: 'userId_1_fields.searchValue_1_fields.name_1',
collation: { locale: 'en', strength: 1 },
},
]
const migrate = async client => {
const { db } = client
await Helpers.addIndexesToCollection(db.libraryReferences, indexes)
}
const rollback = async client => {
const { db } = client
await Helpers.dropIndexesFromCollection(db.libraryReferences, indexes)
}
export default {
tags,
migrate,
rollback,
}