RxDB - FlexSearch plugin
npm i rxdb-flexsearch flexsearch@0.7.21 --save
import { addRxPlugin } from 'rxdb';
import { getRxStorageMemory } from 'rxdb/plugins/storage-memory';
import { RxDBFlexSearchPlugin } from 'rxdb-flexsearch';
import { userSchema } from './schemas';
addRxPlugin(RxDBFlexSearchPlugin);
const database = await createRxDatabase({
storage: getRxStorageMemory(),
});
await database.addCollections({
users: {
schema: userSchema,
options: {
searchable: true,
},
},
});
...
const results = await collection.search(query: string);
console.log(results);
await database.exportIndexes((key, data) => {
localStorage.setItem(key, data);
});
await database.importIndexes({
[key]: localStorage.getItem(key);
});
You can use the autoIndexExport
database option to automatically export indexes when the collection is modified.
const database = await createRxDatabase({
storage: getRxStorageMemory(),
options: {
autoIndexExport: (key, value) => {
localStorage.setItem(key, value);
},
}
});