我有一个使用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中的工作原理。我确信这是可能的,但未能弄明白。
任何帮助将不胜感激!
答案 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
块本身。