我在我的Angular应用程序中有一个功能,其中有一些可搜索的项目存在于我的Algolia数据库中。事情是......他们不能被任何字符串搜索。他们只能通过方面搜索。Javascript Algolia - 如何用空搜索字符串开始新搜索?
问题是,当我用一个空字符串+我的搜索过滤器/ facets运行我的初始.search()函数时,我得到一个返回的列表,并且一切都很好,并且很花哨。但是,当我再次运行函数来刷新列表时,它会返回相同的结果,并且实际上从不会触发新请求,除非更改其中一个筛选器/方面。
有什么办法可以在任何时候强制搜索查询,而无需指定“新”搜索条件?
这里是我的搜索功能:
searchForAuditions() {
// Setup the filters/options
let options = {
highlightPreTag: '<span class="highlighted">',
highlightPostTag: '</span>',
hitsPerPage: 10,
};
// Add clause to make sure "is_deleted" is false
let isDeleted = ` is_deleted: "false"`;
let facets = `${isDeleted}`;
// Replace all trailing spaces and split it into an array
let facetWords = facets.replace(/\s+$/, '').split(" ");
// Remove trailing "AND"
if((facetWords[facetWords.length - 1] === "AND") || (facetWords[facetWords.length - 1] === "OR")) {
facetWords.splice(-1, 1);
facets = facetWords.join(' ');
}
if(facets) {
options['filters'] = facets;
}
this.auditionsIndex.search('', options).then(result => {
this.results = result.hits;
})
}
提前感谢!
什么是优雅的解决方案。我认为是这样的,但是我在文档中找不到它。感谢您对我的帮助:D –
嘿,有一件事很快:我注意到,当我在搜索之前运行我的clearCache函数时,当结果重新加载时,总是需要两次重新加载才能获得更新,就好像重新加载是一个“重新加载”,如果这是有道理的。每次运行搜索功能时,它都会给我旧的结果,以前应该显示重新加载。有什么想法吗? –