Finding relevancy Improving your application search bar! Alexander Reelsen alex@elastic.co | @spinscale
Slide 2
Today’s goal Learn about search, relevancy and the user perspective!
Slide 3
The ultimate search experience
Slide 4
Slide 5
Slide 6
The ultimate search experience: Query intent stock crash 2008 tomorrow’s temperature barack obama age twitter cheap nike hoodie red xl
Slide 7
The ultimate search experience: Query intent Extremely generic Rarely needed for most web applications Many search use-cases are specialized E-Commerce News Social network
Slide 8
E-Commerce Start with a full text search
Slide 9
E-Commerce Start with a full text search Drill down via facetted navigation
Slide 10
E-Commerce Start with a full text search Drill down via facetted navigation Select product
Slide 11
The ultimate search experience: Commercial Intent Scoring is never neutral, influencing factors (E-Commerce) Popularity Profit Availability Previous searches Previous purchases Cross/Upselling products
Slide 12
LinkedIn Search Search for first name Search for last name Prefix search 1st degree > 2nd degree 2nd degree > 3rd degree
Slide 13
LinkedIn Search Rare surname more important than first name
Slide 14
Let’s build such a person search using Elasticsearch!
Slide 15
Product Overview
Slide 16
Elastic Stack
Slide 17
Elasticsearch in one minute Search Engine (FTS, Analytics, Geo), near real-time Distributed, scalable, highly available, resilient Interface: HTTP & JSON
Slide 18
Sample app: Social network Entity: Person Fields: Matching: First & last name Scoring: Employer & direct contacts Meta: Title & image
Run node application git clone https://github.com/spinscale/social-network-search-sample cd social-network-search-sample npm install # create static build npm run build npm run start # or for development mode w/ livereload npm run build
Slide 22
Install Elasticsearch # https://www.elastic.co/downloads/elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-darwin-x86_64.tar.gz # wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz # wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-windows-x86_64.zip tar zxf elasticsearch-7.9.3-darwin-x86_64.tar.gz cd elasticsearch-7.9.3 ./bin/elasticsearch
Slide 23
Install Kibana # https://www.elastic.co/downloads/kibana wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-darwin-x86_64.tar.gz # wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz # wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-windows-x86_64.zip tar zxf kibana-7.9.3-darwin-x86_64.tar.gz cd kibana-7.9.3 ./bin/kibana
Point your browser to http://localhost:5601/
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
Summary Coming up with a simple query is easy Figuring out user intents is hard Coming up with a proper query will take time and tries Analytics & metrics are vital
Slide 29
Next steps rank_feature : Boost score based on numeric field value vector : Similarity search based on a feature vector
Slide 30
Can you quantify search experience
Slide 31
How to measure search improvements
Slide 32
Continuous feedback loop
Slide 33
Thanks for listening Q&A Alexander Reelsen Community Advocate alex@elastic.co | @spinscale
Slide 34
Resources GitHub Sample Repo rank_feature field type documentation vector field type documentation search_as_you_type field type documentation
Slide 35
Community & Meetups https://community.elastic.co
Slide 36
Discuss Forum https://discuss.elastic.co
Slide 37
Thanks for listening Q&A Alexander Reelsen Community Advocate alex@elastic.co | @spinscale