chore: move search-indexing, supress webpack-cli progress (#39367)
This commit is contained in:
committed by
GitHub
parent
6e16a50329
commit
adef746299
51
tools/search-indexing/data-push/init/guides.js
Normal file
51
tools/search-indexing/data-push/init/guides.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const { from } = require('rxjs');
|
||||
const { toArray, switchMap } = require('rxjs/operators');
|
||||
const _ = require('lodash');
|
||||
const { client } = require('../../algolia');
|
||||
const { getGuideArticleData } = require('../../data-sources/guides');
|
||||
const debug = require('debug');
|
||||
|
||||
const log = debug('fcc:search:init:guides');
|
||||
|
||||
const index = client.initIndex('guide');
|
||||
|
||||
index.setSettings(
|
||||
{
|
||||
searchableAttributes: ['title', 'content', 'category'],
|
||||
distinct: true,
|
||||
attributeForDistinct: 'id',
|
||||
attributesForFaceting: ['category']
|
||||
},
|
||||
(err, response) => {
|
||||
if (err) {
|
||||
log(err.message);
|
||||
log(err.debugData);
|
||||
throw new Error(err);
|
||||
}
|
||||
log('setSettings\n' + JSON.stringify(response, null, 2));
|
||||
}
|
||||
);
|
||||
|
||||
exports.insertGuides = function insertGuides() {
|
||||
return getGuideArticleData()
|
||||
.pipe(
|
||||
toArray(),
|
||||
switchMap(articles => {
|
||||
const chunks = _.chunk(articles, 200).map(_.flatten);
|
||||
return from(chunks);
|
||||
})
|
||||
)
|
||||
.subscribe(
|
||||
articles => {
|
||||
index.addObjects(articles, err => {
|
||||
if (err) {
|
||||
throw new Error(err);
|
||||
}
|
||||
});
|
||||
},
|
||||
err => {
|
||||
throw new Error(err);
|
||||
},
|
||||
() => log('complete')
|
||||
);
|
||||
};
|
Reference in New Issue
Block a user