如何通过布尔属性过滤我的搜索?

问题描述

如何过滤点击?我有这样的结构:Hit 有一个属性“like”它是一个布尔值,我只想显示带有 like===true

的 Hits
 <Configure hitsPerPage={100} />
   <Grid >
     <Grid >
       <Hits hitComponent={Hit} />
     </Grid>
   </Grid>

在女巫部分我可以使用过滤器吗?

这是我要搜索的配置,意思是本文档https://www.algolia.com/doc/api-reference/widgets/configure/react/

<InstantSearch
        searchClient={vclient}
        indexName={`myVarClient`}
      >

我正在尝试使用 <Configure filters="category:secure" hitsPerPage={100} /> 其工作,但是当我尝试使用 bool 属性时,这不起作用是什么问题?

我尝试过但没有用,虽然这个很好用,但我需要像布尔值这样的属性

解决方法

Configure 小部件是用于此用例的方法。您必须确保提供的属性在 attributesForFaceting 列表中,否则过滤器将不起作用。这是一个使用字段 free_shippingexample,它是一个布尔属性。

<InstantSearch searchClient={searchClient} indexName="instant_search">
  <Configure filters="free_shipping:true" />
</InstantSearch>
,

首先你应该从仪表板配置

转到您的仪表板并选择您的索引。点击配置 标签。在过滤和分面类别下,单击分面。在 在分面属性部分,单击添加属性和 选择您希望为分面声明的属性。对于每个 属性,单击右侧的下拉列表并将它们设置为 “可搜索”、“仅过滤”或“不可搜索”。不要忘记保存 你的改变 此信息来自:https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/how-to/declaring-attributes-for-faceting/

或来自其 api 客户端:

index.setSettings({
  attributesForFaceting: [
    'like',]
}).then(() => {
  // done
});

更多信息:https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#examples

Modifiers:# filterOnly:将属性定义为仅可过滤且 不可刻画。

如果你只需要过滤功能,你可以利用 filterOnly 这将减少索引大小并提高速度 搜索。

您不能将属性同时定义为“filterOnly”和“searchable”。 因此,以下是不可行的: filterOnly(searchable(attributeName)).

可搜索:将属性定义为可搜索。

这样就可以了

<Configure  filters="like:true" hitsPerPage={100} />

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...