trendyminds / algolia
轻松将Algolia的搜索结果拉入您的Craft CMS网站
5.0.0
2024-04-05 19:05 UTC
Requires
- php: ^8.2
- algolia/algoliasearch-client-php: ^3.4
- craftcms/cms: ^5.0.0
Requires (Dev)
- laravel/pint: ^1.13
This package is auto-updated.
Last update: 2024-09-05 20:10:37 UTC
README
关于
Algolia for Craft CMS 允许您轻松地将Algolia的搜索结果拉入您的Twig模板或通过REST API端点。
模板使用
浏览索引
额外的搜索参数 可以在 params
对象中提供。
{% for result in craft.algolia.browse({ index: "indexName", query: "optional query", params: { distinct: true, getRankingInfo: true } }) %} {% endfor %}
搜索索引
额外的搜索参数 可以在 params
对象中提供。
{% set search = craft.algolia.search({ index: "indexName", query: "optional query", params: { hitsPerPage: 5, page: 7 } }) %} {% for hit in search.hits %} {% endfor %}
执行多查询搜索
额外的搜索参数 可以在每个 queries
对象中提供。
{% set search = craft.algolia.multipleQueries([ { indexName: "indexName1", query: "optional query" }, { indexName: "indexName2", query: "optional query" } ]) %} {% for group in search.results %} {% for hit in group.hits %} {% endfor %} {% endfor %}
解析过滤器
在Algolia搜索中使用过滤器时,搜索引擎需要 特定的语法。与在Twig中字符串化过滤器不同,此插件提供了一种将类似...
{ "food": ["fries", "cake", "pizza"], "colors": ["blue", "green", "red"], "featured": true }
转换为有效的Algolia过滤器字符串...
'(food:"fries" OR food:"cake" OR food:"pizza") AND (colors:"blue" OR colors:"green" OR colors:"red") AND (featured:"1")'
{% set filters = { food: ['fries', 'cake', 'pizza'], colors: ['blue', 'green', 'red'], featured: true } %} {{ craft.algolia.parseFilters(filters) }}
使用JSON REST API控制器
除了Twig变量外,您还可以向以下控制器端点之一发送 POST
请求。当您发送 POST
请求时,可用的索引、查询和可选属性相同。
注意:以下示例使用 Axios 进行API请求
浏览索引
额外的搜索参数 可以在 params
对象中提供。
axios.post("/actions/algolia/default/browse", { index: "indexName", query: "optional query", params: { distinct: true, getRankingInfo: true } }, { headers: { "X-CSRF-Token": YOUR_CRAFT_CSRF_TOKEN } });
搜索索引
额外的搜索参数 可以在 params
对象中提供。
axios.post("/actions/algolia/default/search", { index: "indexName", query: "optional query", params: { hitsPerPage: 5, page: 7 } }, { headers: { "X-CSRF-Token": YOUR_CRAFT_CSRF_TOKEN } });
执行多查询搜索
额外的搜索参数 可以在每个 queries
对象中提供。
axios.post("/actions/algolia/default/multiple-queries", { queries: [ { indexName: "indexName1", query: "optional query" }, { indexName: "indexName2", query: "optional query" } ] }, { headers: { "X-CSRF-Token": YOUR_CRAFT_CSRF_TOKEN } });
要求
此插件需要Craft CMS 3.1.19+和PHP 7.1+。
安装
归属
此插件由 Algolia PHP API客户端 支持。客户端和图标/徽标属于Algolia。