7. Understanding Search
Why do we search?
Basic Human instinct We want answers→
Humans are information-driven Knowledge→
is key to survive
8. Understanding Search
Why do we search?
Basic Human instinct We want answers→
Humans are information-driven Knowledge is key to survive→
Brainless Modeling the world→
9. Understanding Search
Why do we search?
Basic Human instinct We want answers→
Humans are information-driven Knowledge is key to survive→
Brainless Modeling the world→
The River and the Fish Information is fooding us, but most of→
the time we’re interested in only a specific slice of the“big cake”
29. Understanding Search
“The Search”: User Input
What makes it complex?
- Creating an intuitive yet powerful frontend (UI)
- Expose syntax, but not overwhelm end-user
- Features to provide:
- Faceted Search
- Search suggestions, Live Search
- Related searches
- Default View: Basic or Advanced
- Type of user input: keywords, image, geolocation (coordinates)
32. Understanding Search
“The Search”: Magic
What makes it complex?
- Different types of content → Abstraction, Transformation
- Different repositories → Integration
- Language characteristics ( Site & Content Localization)←
- Performance, Permissions, restrictions → Operation, Implementation, Business needs
- Mapping user-thinking → Queries
- Scaleability → Operation
- Finding the good platform → Architecture
38. Understanding Search
“The Search”: Content
The world is not ideal →
Data comes in different forms →
Search should operate on a common
form
39. Understanding Search
“The Search”: Content
The world is not ideal →
Data comes in different forms →
Search should operate on a common form
← Transparency for end-user
40. Understanding Search
Summary
What we need?
- Data Transformation → Pre-Search
- Search Backend → Search → Magic :-)
- Search Frontend → Couldn’t find a good word for this, but writing something just
to keep the format :-)
43. Technology Stack
LuceneTM
Full-featured text search engine library
Java-based
Document model
Provides indexing, scoring, spellchecking, hit highlighting and advanced
analysis/tokenization capabilities
Provides a wide range of queries
Open Source (Apache License 2.0)
49. Technology Stack
Lucene: Search Index vs. DB
- Different purposes
- DB: permanent storage, data-driven, application-centric
- Search Engine, Index: optimized for search, user-centric
- Search in search engine is about relevance
- Database searches does not provide us with fuzzy searching or any type of relevancy
- Can apply algorithms like“More Like This”to obtain similar content
- Advanced Features
- Geolocation
- Faceting of results
- Multi-lingual searching
51. Technology Stack
Solr
Highly reliable, scalable and fault tolerant
Provides distributed indexing, replication and load-balanced querying, automated
failover and recovery, centralized configuration and more
Standalone enterprise search server (web application) with a REST-like API
Wide range of clients
Apache Foundation
58. Technology Stack
Elasticsearch: Features
Massively Distributed: ES allows you to start small and scale horizontally as you grow.
Simply add more nodes, and let the cluster automatically take advantage of the extra
hardware
73. Search in Liferay
The Liferay Search Infrastructure
Liferay
Platform
Assets:
web content,
message boards,
wiki pages...
Search
infrastructure
(Magic
happens
here)
Search engine(s)
Indices,
documents,
analysis...
74. → 2004: Lucene: from the very beginnings
- Liferay Search APIs: built around/on top of Lucene, default engine
→ 2008 (5.1): abstracting out search mechanism → Solr integration (plugin)
→ 2011 (6.0): Faceted Search Support
Search in Liferay
The Evolution of Search
75. → 2011-2014: (6.0-6.2): enhancing search functionalities
- Suggestions,“Did You Mean”, filtering, improved permission awareness
→ 2016 (7.0): Elasticsearch integration
- Default search engine
- Generic queries
- OSGi module
- Partnership with Elastic
Search in Liferay
The Evolution of Search
76. Best of breed
Built for modern web applications
Distributed and clusterable by design
Lucene based
Great vendor support
Great monitoring tools: Marvel
Search in Liferay
Why Elasticsearch?
77. Open Source
Amazing documentation
High "just works" factor, e.g. zero-config indexing and clustering
REST for queries, health, admin - everything
Great Java Client API
Pretty JSON for talks ;-)
Search in Liferay
Great for Developers
80. Shield | Security for Elasticsearch
Protect your Liferay index with a username and password
SSL/TLS encryption for traffic within the Liferay Elasticsearch cluster
Elasticsearch plugin - no need for an external security solution
Restrict access to Liferay Portal instances with IP filtering
Liferay Integration
Search in Liferay
Liferay 7 EE Search Features: Security
81. Marvel | Monitor for Elasticsearch
Real-Time and Historical Analysis
Real-Time Cluster Health at a Glance
Multicluster Support
Liferay Integration
Search in Liferay
Liferay 7 EE Search Features: Monitoring
82.
83. Details are coming soon...
Search in Liferay
Liferay 7 EE Search Features: Licensing
84. Resources
André de Oliveira: Harnessing the power of search, Liferay DEVCON, 2015
Michael Han: Search Reference documentation (Liferay Internal Documentation)
Tibor Lipusz: Introduction to Indexing & Searching, Faceted Search in Liferay (Liferay Internal Training)
Tibor Lipusz: Introduction to Search: Elasticsearch and Solr (Liferay Internal Training)
Source of Images, Figures:
www.liferay.com
https://dev.liferay.com
www.amazon.com
www.google.com
http://lucene.apache.org
www.elastic.co
http://lucene.apache.org/solr/