如何防止在搜索查询中返回某些值?
How do I prevent certain values from being returned in a search query?
如何防止在搜索查询中返回某些值?
例如,我正在使用 Algolia 的地理查询功能,想阻止位置被发送回客户端?
您可以指定Unretrievable Attributes:此功能让您select您的记录的哪些信息应该不与您的搜索结果一起返回。
index.setSettings({
unretrievableAttributes: ["_geoloc"]
})
我遇到了类似的问题。我联系了 Algolia 支持,他们建议我删除任何我不想索引的属性,方法是在获得 objectID 后将其删除:
function addOrUpdateIndexRecord(contact) {
// Get Firebase object
const record = contact.val();
// Specify Algolia's objectID using the Firebase object key. ObjectID is obtained here
record.objectID = contact.key;
// Use this to delete the attributes you don't want indexed
delete record.whateverNameOfTheFirstAttribute
delete record.whateverNameOfTheSecondAttribute
delete record.whateverNameOfTheThirdAttribute
delete record.etcEtc
// Add or update object
index
.saveObject(record)
.then(() => {
console.log('Firebase object indexed in Algolia', record.objectID);
})
.catch(error => {
console.error('Error when indexing contact into Algolia', error);
process.exit(1);
});
}
}
如何防止在搜索查询中返回某些值?
例如,我正在使用 Algolia 的地理查询功能,想阻止位置被发送回客户端?
您可以指定Unretrievable Attributes:此功能让您select您的记录的哪些信息应该不与您的搜索结果一起返回。
index.setSettings({
unretrievableAttributes: ["_geoloc"]
})
我遇到了类似的问题。我联系了 Algolia 支持,他们建议我删除任何我不想索引的属性,方法是在获得 objectID 后将其删除:
function addOrUpdateIndexRecord(contact) {
// Get Firebase object
const record = contact.val();
// Specify Algolia's objectID using the Firebase object key. ObjectID is obtained here
record.objectID = contact.key;
// Use this to delete the attributes you don't want indexed
delete record.whateverNameOfTheFirstAttribute
delete record.whateverNameOfTheSecondAttribute
delete record.whateverNameOfTheThirdAttribute
delete record.etcEtc
// Add or update object
index
.saveObject(record)
.then(() => {
console.log('Firebase object indexed in Algolia', record.objectID);
})
.catch(error => {
console.error('Error when indexing contact into Algolia', error);
process.exit(1);
});
}
}