Drupal 7 Search API

主标签

投票加载中...
标签: 
Drupal 7 Search API

Search API提供一个搜索框架。可以简单的创建各种Entity(user, taxonomy, node)搜索(我使用的时候是一点都不简单.),Search API的工作原理是将所需要的数据索引到一个叫数据源的地方。然后使用Views来过滤数据,最后使用FacetAPI显示搜索结果. 所以它来需要一个索引数据的数据源Search API Solr search或者Search API Database Search.

相对来说Search API + Facet API是非常复杂的. 并不是一下子能够掌握的.特别是在组合Commerce这些大型模块

安装与配置: 

安装

由于Search API Solr search需要结合一个客户端软件(Solr)相对比较复杂但是速度也更快。而Search API Database Search是将数据源保存在数据库。为了方便我们这边会使用这个模块.用法完全一样。只是会在选择数据源的时候有所有同而已。

  1. 安装Views , 用于数据过滤和展示。
  2. 安装Search API
  3. 安装entity api模块
  4. 安装Facet API (显示搜索结果)
  5. 安装Search API Database Search (数据索引/数据源).

启用以下模块

 search_api
search_facets
entity_api
entity
search_api_views       // Search API子模块用于整合views
search_api_facetapi    // Search API子模块用于整合Facet API模块.
search_api_db
current_search_blocks   // 显示当前搜索的结果. 

使用drush安装和下载.

1. 下载

 drush dl search_api views ctools search_api_db  facetapi entity 

2. 安装

 drush en search_api views views_ui ctools search_api_db  facetapi search_api_views entity  search_api_facetap current_search_blocks 

配置

1. 进入到search api配置页面(admin/config/search/search_api).现在肯定是不可以用的我们需要创建一个server,也就是上面提到的数据索引和数据保存的源

2. 创建Server (admin/config/search/search_api/add_server)

 

3. 这时我们再编辑Search api配置首页(admin/config/search/search_api),编辑Default node index (admin/config/search/search_api/index/default_node_index/edit)

 

模块案例: 

Search API音乐频道

一. 创建一些必要数据

  • 创建三个taxonomy(歌手, 年代,歌曲分类)
  • 创建一个类型类型为Music (admin/structure/types/add)

1. 创建taxonomy(admin/structure/taxonomy/add).

 

2. 手动添加一些测试数据.

为分类添加一些term

  • 中国风
  • 劲爆
  • 民歌
  • 经典老歌

为歌手添加一些term

  • 刘德华
  • 周华健
  • 张国荣
  • 张学友
  • 陈奕迅

为年代添加一些term

  • 70后
  • 80后
  • 90后

创建一个类型类型为音乐频道

 

为音乐频道创建三个字段为 Term reference, 然后分别指向三个taxonomy. 单选

最后使用devel generate 为音乐频道这个分类生成一些的content来做测试。 因为生成时选择都是一样的分类和歌手。所以我们需要手动调整一些调成各种。当然这里你可以手动添加一些真实的数据

 

二. 数据索引和Search API配置

进入到Search API配置的字段选择字段(admin/config/search/search_api/index/default_node_index/fields).将要必要的字段选择.

 

开始索引数据(admin/config/search/search_api/index/default_node_index/status),索引需要一点点时间

 

创建Facet 搜索界面进入admin/config/search/search_api/index/default_node_index/facets, 每选中一个就会创建一个搜索block.最后在block那边调整

三. Views数据输出

1. 使用views创建一个Music的页面(admin/structure/views/add)

接着添加以下字段

最后的views结构

保存后接着再进入block页面启用Facet Search(admin/structure/block)

再在我们进入到/music页面就可以进行搜索了

三. 相关技巧

创建一个可以显示当前搜索的block, 前提是我们必须启用Current Search Blocks. 然后进入到配置页面(admin/config/search/current_search/list/standard/edit)

提示:这里可以自定义添加当前搜索的block(admin/config/search/current_search)

接着启用这个block

URL修复: 现在我们的URL是非常乱的. 我们需要使用Facet API Pretty Paths模块进行URL优化

 

模块下载: 
文件加载中...