trendyminds/algolia

轻松将Algolia的搜索结果拉入您的Craft CMS网站

安装次数: 27,847

依赖项: 0

建议者: 0

安全: 0

星星: 13

关注者: 4

分支: 0

开放问题: 2

类型:craft-plugin

5.0.0 2024-04-05 19:05 UTC

README

Query your Algolia data using Twig

关于

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+。

安装

从Craft CMS插件商店安装Algolia!

归属

此插件由 Algolia PHP API客户端 支持。客户端和图标/徽标属于Algolia。