【问题标题】:How can i filter my search by an boolean atrribute?如何通过布尔属性过滤我的搜索?
【发布时间】:2021-05-14 17:37:38
【问题描述】:

如何过滤命中?我有这个结构: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`}
      >

我正在尝试使用&lt;Configure filters="category:secure" hitsPerPage={100} /&gt;,但当我尝试使用 bool 属性时,这不起作用,出了什么问题?

我试过但没有用,而这个效果很好,我需要布尔属性

【问题讨论】:

    标签: reactjs instantsearch


    【解决方案1】:

    首先您应该从仪表板进行配置

    转到您的仪表板并选择您的索引。点击配置 标签。在过滤和分面类别下,单击分面。在 在 Attributes for faceting 部分,单击 Add an Attribute 和 选择要为分面声明的属性。对于每个 属性,单击右侧的下拉菜单并将其设置为 “可搜索”、“仅过滤”或“不可搜索”。不要忘记保存 你的改变 此信息来自: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”。 因此,以下是不可行的: 过滤器(可搜索(属性名))。

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

    这样就可以了

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-08-18
        • 2014-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多