我正在使用Angular ais-configure,并尝试向搜索参数添加过滤器,如下所示:
<ais-configure [searchParameters]="{ filters: 'isPrivate:false' }">
这是为了过滤布尔属性
isPrivate
在我的文档中。
但是,过滤器不起作用。实际上,它会过滤所有文档,而与属性的值无关。我尝试了多种变体,但没有运气。而且,当我删除过滤器参数时,我会得到所有结果。
这是我完整的代码
<ais-instantsearch [config]="{indexName: 'xx_dummy_index', searchClient: algoliasearch('XXXXX', 'yyyyyyyyyyyyyyyyyyy')}">
<ais-search-box [autofocus]="true" placeholder="Search for Questions...">
</ais-search-box>
<ais-stats></ais-stats>
<ais-refinement-list attribute="tags"></ais-refinement-list>
<ais-configure
[searchParameters]="{ filters: 'isPrivate:false' }">
</ais-configure>
<ais-pagination [padding]="3" [showFirst]="true" [showLast]="true"
[showPrevious]="true" [showNext]="true">
</ais-pagination>
<ais-hits>
<ng-template let-hits="hits" let-results="results">
<ol>
<div *ngIf="hits.length === 0">
? No results found matching <strong>{{results.query}}</strong>.
</div>
<li *ngFor="let hit of hits" class="ais-Hits-item">
<app-row [hit]="hit"></app-row>
</li>
</ol>
</ng-template>
</ais-hits>
</ais-instantsearch>
答案 0 :(得分:0)
使其正常工作。事实证明,提供此输入的正确格式如下:
HTML文件:
<ais-configure [searchParameters]="searchParameters"></ais-configure>
TyepScript文件:
this.searchParameters = {
hitsPerPage: 7,
filters: 'isPrivate:false',
};