如何防止在搜索查询中返回某些值?

How do I prevent certain values from being returned in a search query?

如何防止在搜索查询中返回某些值?

例如,我正在使用 Algolia 的地理查询功能,想阻止位置被发送回客户端?

您可以指定Unretrievable Attributes:此功能让您select您的记录的哪些信息应该与您的搜索结果一起返回。

例如 JavaScript API Client:

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);
      });
    }
}