The Search API in Drupal 8. Thomas Seidl (drunken monkey)



Similar documents
Things Made Easy: One Click CMS Integration with Solr & Drupal

Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group

FWG Management System Manual

This three-day instructor-led course provides students with the tools to extend Microsoft Dynamics CRM 4.0.

How To Fix A Bug In Drupal 8.Dev

VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance

5 Mistakes to Avoid on Your Drupal Website

Extending Microsoft Dynamics CRM 4.0

Commerce Services Documentation

MongoDB Developer and Administrator Certification Course Agenda

Using Apache Solr for Ecommerce Search Applications

Search and Real-Time Analytics on Big Data

Grails 1.1. Web Application. Development. Reclaiming Productivity for Faster. Java Web Development. Jon Dickinson PUBLISHING J MUMBAI BIRMINGHAM

Easy configuration of NETCONF devices

Network Activity D Developing and Maintaining Databases

Semantic SharePoint. Technical Briefing. Helmut Nagy, Semantic Web Company Andreas Blumauer, Semantic Web Company

About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.

Magento Content API Technical Overview

Shop by Manufacturer Custom Module for Magento

Functional Requirements for Digital Asset Management Project version /30/2006

OLAP Cube Manual deployment and Error resolution with limited licenses and Config keys

Authorize.net modules for oscommerce Online Merchant.

How to Improve Database Connectivity With the Data Tools Platform. John Graham (Sybase Data Tooling) Brian Payton (IBM Information Management)

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Geodatabase Programming with SQL

Welcome to Collage (Draft v0.1)

ColdFusion Adwords API Library

Adam Rauch Partner, LabKey Software Extending LabKey Server Part 1: Retrieving and Presenting Data

EMC DOCUMENTUM xplore 1.1 DISASTER RECOVERY USING EMC NETWORKER

Configuring SharePoint 2013 Document Management and Search. Scott Jamison Chief Architect & CEO Jornata scott.jamison@jornata.com

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com

How To Use A Siebel Response On A Microsoft Ipa (Aipa) With A Pf-F2 (F2) And Pf.2A (F1) On A Mac

ANSYS EKM Overview. What is EKM?

Credit Card Overview & Processing Guide entrée Version 3

CRM CUSTOMER RELATIONSHIP MANAGEMENT

Course 55144B: SQL Server 2014 Performance Tuning and Optimization

Portal Factory CMIS Connector Module documentation

Technical. Overview. ~ a ~ irods version 4.x

Cloudfinder for Office 365 User Guide. November 2013

My IC Customizer: Descriptors of Skins and Webapps for third party User Guide

Sage CRM Connector Tool White Paper

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package Data Federation Administration Tool Guide

IMPLEMENTING AND DEVELOPING FOR WORDPRESS IN CIVICRM 4.6 AND BEYOND. Kevin Cristiano April 2015 Tadpole

European Archival Records and Knowledge Preservation Database Archiving in the E-ARK Project

WebSphere Commerce V7 Feature Pack 3

Configuring Custom Fields in JEvents Club Addon

Design Document. Offline Charging Server (Offline CS ) Version i -

Entites in Drupal 8. Sascha Grossenbacher Christophe Galli

ifinder ENTERPRISE SEARCH

User Replicator USER S GUIDE

Final Report - HydrometDB Belize s Climatic Database Management System. Executive Summary

NatureServe s Environmental Review Tool

Drupal CMS for marketing sites

Resco CRM Server Guide. How to integrate Resco CRM with other back-end systems using web services

This module explains the Microsoft Dynamics NAV architecture and its core components.

EAGLE EYE IP TAP. 1. Introduction

IBM DB2 XML support. How to Configure the IBM DB2 Support in oxygen

Connections to External File Sources

Apache Sentry. Prasad Mujumdar

Magento Search Extension TECHNICAL DOCUMENTATION

Introduction to Big data. Why Big data? Case Studies. Introduction to Hadoop. Understanding Features of Hadoop. Hadoop Architecture.

CERN Summer Student Program 2013 Report

PLSAP CONNECTOR FOR TALEND USER MANUAL

Protected Trust Directory Sync Guide

Analytics: Pharma Analytics (Siebel 7.8) Student Guide

API Reference Guide. API Version 1. Copyright Platfora 2016

Informix Administration Overview

Administrator s Guide

Creating Basic Custom Monitoring Dashboards Antonio Mangiacotti, Stefania Oliverio & Randy Allen

StreamServe Persuasion SP5 Document Broker Plus

Installation & User Guide

Client Overview. Engagement Situation. Key Requirements

MatchPoint Technical Features Tutorial Colygon AG Version 1.0

Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft

LICENTIA. InvoiceXpress Integration

HydroDesktop Overview

GFI Product Manual. GFI MailArchiver Outlook Addon

Deploying to WebSphere Process Server and WebSphere Enterprise Service Bus

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC

How is it helping? PragmatiQa XOData : Overview with an Example. P a g e Doc Version : 1.3

Balamaruthu Mani. Supervisor: Professor Barak A. Pearlmutter

An Oracle White Paper September Oracle Team Productivity Center

"Charting the Course... MOC AC SQL Server 2014 Performance Tuning and Optimization. Course Summary

Liferay Enterprise ecommerce. Adding ecommerce functionality to Liferay Reading Time: 10 minutes

Drupal 8 The site builder's release

Learn about OverDrive APIs and how they can benefit search, discovery and reporting services at your library. Contact:

Module - Facebook PS Connect

Index. AdWords, 182 AJAX Cart, 129 Attribution, 174

Qlik REST Connector Installation and User Guide

Configuring Apache HTTP Server as a Reverse Proxy Server for SAS 9.2 Web Applications Deployed on BEA WebLogic Server 9.2

LAVA Project Update. Paul Larson

Trainer name is P. Ranjan Raja. He is honour of and he has 8 years of experience in real time programming.

SQL Server 2014 Performance Tuning and Optimization 55144; 5 Days; Instructor-led

Transcription:

The Search API in Drupal 8 Thomas Seidl (drunken monkey)

Disclaimer Everything shown here is still a work in progress. Details might change until 8.0 release.

Basic architecture Server Index Views Technical implementation Generic information Uses database/solr/ Item type Facets Search how? Fields Processing Search what?

Server Configuration entity Uses plugin service class for operations Stores class and specific settings

Service class Plugin for servers Implementation of server operations Indexing, deleting, searching Reaction to changed indexes Custom configuration form Connects to storage (DB, Solr, )

Index Configuration entity Main connection to other modules Uses datasource plugin

Datasource Index plugin providing the item types Loading, viewing, metadata for types Tracking of new/changed/deleted items Type-specific configuration

Processors Plugins attached to index Alter indexed items and search queries Configurable (Fused with D7 data alterations )

Index Indexing Datasource Processors Server 5. Extracts fields 1. Determines 4. Alter changed items 7. Sends items to server 2. Loads items 3. Provides metadata 10. Marks items as indexed metadata 6. Preprocess fields / items 8. Indexes items 9. Returns indexed items

Search Searching Query Processors Server 1. Creates query 2. Adds keywords 4. Adds filters, sort, etc. 3. Parses keywords 5. Checks input (partially) 7. Preprocess query 9. Postprocess search results 6. Executes query 8. Retrieves results 10. Displays results

Customizations

Service class Integrate new search services with Drupal /** * @SearchApiService( * id = "MODULE_my_service", * label = @Translation("My service"), * description = @Translation("Really cool!") * ) */ class MyService extends ServicePluginBase { function indexitems($index, $items) {} function deleteitems($index, $ids) {} function deleteallitems($index) {} function search($query) {} }

Service class Also available: Configuration form React to new/changed/removed indexes CRUD hooks supportsfeature(), supportsdatatype()

Features Add service-specific functionality Defined by contrib modules Using modules check for support Creation: No code, just documentation E.g.: facets, MLT, location, autocomplete, spellcheck

Data type Let services support non-default data types E.g., location coordinates, special text formats Services state support similar to features D7: hook_search_api_data_type_info() Documentation important

Datasource Support for custom item types /** * @SearchApiDatasource( * id = "MODULE_my_datasource", * name = @Translation(My datasource"), * description = @Translation("My great type.") * ) */ class MyDatasource extends DatasourcePluginBase { function getidfieldinfo() {} function getpropertydefinitions() {} function loaditems($ids) {} function getallitemids() {} }

Datasource Also available: Configuration form Viewing and view modes Get item's ID, label, URL Override tracking mechanism Call search_api_track_item_*()!

Processor Pre-/postprocess indexed items and results /** * @SearchApiProcessor( * id = "MODULE_my_processor", * label = @Translation("My processor"), * description = @Translation("Does stuff.") * ) */ class MyProcessor extends ProcessorPluginBase { function alterpropertydefinitions(&$info) {} function preprocessindexitems(&$items) {} function preprocesssearchquery($query) {} function postprocesssearchresults(&$response, $query) {} }

Processor Also available: supportsindex() Configuration form Default implementation FieldsProcessorPluginBase process(), processfieldvalue(), processkey(), processfiltervalue(), testfield(), testtype()

Parse modes Interpretation of keywords By default: direct, single term, multiple terms Selection when creating search

Query D7: Pluggable in odd way D8: TBD

(Possible) D8 changes Support several item types per index More query functionality (like DB layer) Major changes for processors Possibly: query extenders / per-query processor config Loads of other stuff

Thank you!

What do you think?

Other questions?