Algolia InstantSearch默认参数/范围

时间:2018-05-13 18:23:28

标签: reactjs algolia

我有一个使用Algoia InstantSearch库的React应用程序。这一个https://community.algolia.com/react-instantsearch/

  <InstantSearch
    appId="KJH78673IUH"
    apiKey="e55e048w7fh8wh8wrgh834c3ea51e3"
    indexName="Events"
  >
    <Configure hitsPerPage={10} />
    <SearchBox />
    <h3>Latest Events</h3>
    <Hits />
    <Index indexName="Venues">
      <h3>Latest Venues</h3>
      <Hits />
    </Index>
    <Index indexName="Users">
      <h3>Latest Users</h3>
      <Hits />
    </Index>
  </InstantSearch>

这样可以正常工作并在我输入时拉取结果。然而。在每个Event,Venue和User记录中,我都有一个属性site_id。我很难弄清楚如何将site_id设置为搜索查询的默认范围。按照default_scope在Rails中的工作原理。我确信这是可能的,但未能弄明白。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我想出了如何使用VirtualWidgets做到这一点。

https://community.algolia.com/react-instantsearch/connectors/connectMenu.html

范围是特定属性的索引我使用了以下方法:

import { connectMenu } from 'react-instantsearch/connectors';
const VirtualMenu = connectMenu(() => null);
// RESET OF COMPONENT CODE
<InstantSearch
    appId="KJH78673IUH"
    apiKey="e55e048w7fh8wh8wrgh834c3ea51e3"
    indexName="Events"
  />
    <Configure hitsPerPage={10} />
    <VirtualMenu attribute="site_id" defaultRefinement="1" />
    <SearchBox />
    <h3>Latest Events</h3>
    <Hits />
    <Index indexName="Venues">
      <h3>Latest Venues</h3>
      <Hits />
    </Index>
    <Index indexName="Users">
      <h3>Latest Users</h3>
      <Hits />
    </Index>
  </InstantSearch>

您也可以将VirtualWidget添加到Index块本身。