Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ten Tips to completely fail building your Search Project

Ten Tips to completely fail building your Search Project

Search can be just solved by using Elasticsearch, or Solr, out of the box, right? If you wanna learn how to make sure you completely fail at search, this is your talk. Using real world examples we will review common patterns that will make your project search fail. With this talk you will learn, how to setup search ones and never touch it again. If it works for you, is good enough, users don’t have a saying on finding items. Users know what they want, no need to help them in the process.etc. Having this tips in mind, you will completely fail on search, and your product and business owners will never come back to you with complicated stuff to change your search cluster.

4c253af5a9977910b9326b19199d3023?s=128

Pere Urbón

April 25, 2018
Tweet

Transcript

  1. @purbon 10 (or so) tips to completely fail building your

    search
  2. @purbon Pere Urbon-Bayes Software Architect

  3. @purbon Disclaimer

  4. @purbon This is not about:

  5. @purbon you or your project

  6. @purbon your future projects

  7. @purbon finger pointing

  8. @purbon This is about:

  9. @purbon Learning how to build proper search with a good

    sense humor
  10. @purbon Your boss wants to modernise! You don’t want to

    do it. Everybody knows, If it works, don’t touch it! Your plans are…..
  11. @purbon

  12. @purbon Lets rewind a bit…

  13. @purbon Your boss, who visited an elastic meetup, is asking

    you to build a modern site search. Machine Learning Personalisation Natural Language Processing Deep Learning Recommenders
  14. @purbon

  15. @purbon WorkQueueOverflowException

  16. @purbon

  17. @purbon We prefer rest

  18. @purbon than hard work

  19. @purbon Don’t worry, we are here to help you!

  20. @purbon Plan countdown

  21. @purbon 7

  22. @purbon No need to manage search

  23. @purbon First, Let’s Fire All the Managers. by Gary Hamel

    https://hbr.org/2011/12/first-lets-fire-all-the-managers
  24. @purbon Content don’t need cleanup. Metadata is overrated. The UI

    and UX is not worth it.
  25. @purbon They don't want to see us unite: All they

    want us to do is keep on fussing and fighting. They don't want to see us live together: All they want us to do is keep on killing one another. Bob Marley
  26. @purbon Divide et impera, your search team members are better

    disconnected caos is secure!
  27. @purbon 6

  28. @purbon Search is a technical problem

  29. @purbon To follow this tip there is only one rule:

    • Search stays only within engineering. • No other parts of the business will ever take part of it.
  30. @purbon Geeks at work

  31. @purbon What can go wrong, if no product people is

    involved?
  32. @purbon You all know, search is as easy as setting

    up Elasticsearch or Solr The domain is not relevant at all Understanding users needs is overrated
  33. @purbon 5

  34. @purbon Silver bullet search

  35. @purbon Have you ever been in such situation? Business comes

    to IT with a magic solution that will solve all existing problems. Search (or any other kind of) vendor promises to solve all your company problems.
  36. @purbon You don’t know how, but the magic solution gets

    in, what could go wrong?
  37. @purbon Initial honeymoon is over, and ….

  38. @purbon Boom!

  39. @purbon

  40. @purbon The cloud discontinuity acquisition paradox

  41. @purbon The manipulation plot

  42. @purbon Search is an easy problem Get an account on

    algolia, or get marklogic licence and solve all the problems Silver bullets are there for a reason!
  43. @purbon 4

  44. @purbon Search does not require test

  45. @purbon Search engine testing is too hard, we don’t want

    to do it. remember….
  46. @purbon We prefer rest

  47. @purbon than hard work!

  48. @purbon But how should we do that?

  49. @purbon Pretend you are busy few useful ideas…

  50. @purbon

  51. @purbon Logging user queries is not important Make your own

    educated guesses about queries Optimise for the uncommon input queries
  52. @purbon Use very specific queries open ended queries are also

    good use cases.
  53. @purbon Non product query terms are not important Disregards steaming

    effects on input query terms
  54. @purbon Discards investigating query exit rate. Queries with lots of

    refinements are nothing to be reviewed.
  55. @purbon Remember, search is not testable! everybody should be aware

    of it
  56. @purbon 3

  57. @purbon Search doesn’t require UX

  58. @purbon UX is an overrated field The UI will not

    affect search quality
  59. @purbon If users don’t find results is their problem

  60. @purbon Hide your search bar at all costs

  61. @purbon Make your auto suggest random

  62. @purbon Don’t show progress

  63. @purbon Search does not require UX Have a search box,

    never think about UI anymore
  64. @purbon 2

  65. @purbon Optimise for SEO but not for in-app search.

  66. @purbon Have this conversation feel familiar to you? Leadership wonders

    how to improve user search process There is not much of understanding of search
  67. @purbon Let’s optimise for SEO, anyway all traffic is coming

    from google anyway They actually never ask the engineering/product team
  68. @purbon You should not worry, even encourage it. make search

    another one problem!
  69. @purbon Our objective is…

  70. @purbon Remember search is esoteric, SEO is well understood really?

  71. @purbon People will most probably find your pages from the

    internet search engine of reference. but inside your app,….
  72. @purbon Sadness and desolation is guaranteed Users will feel abandoned,

    high chances they will not come back.
  73. @purbon If you are here, you probably have completed a

    few of previous tips very well. Good Job! only one left!
  74. @purbon 1

  75. @purbon No need to listen to our user

  76. @purbon Stage for this tip: You have a working search

    function in your app. You might be wondering, what are next steps to improve it.
  77. @purbon If you are having such thoughts now, please….

  78. @purbon why are you thinking too much?

  79. @purbon But if you insist, or are forced to, improve

    your search This is a critical tip to sabotage all the search efforts Never listen to your users
  80. @purbon No logs generated from your search Remember a common

    excuse, there is never time for that
  81. @purbon No user feedback gathered from the UI Too hard

    to get it done! You can always play the GDPR card
  82. @purbon Remember if you ask your users, they might tell

    you where search is not good, and you might be ask to fix it.
  83. @purbon There is absolutely no need to deal with language

    This only apply if you have multi-language content
  84. @purbon

  85. @purbon Handling language is hard You should only care about

    English why should you bother about the rest…
  86. @purbon Stemming is just introducing problems, for example: Word Stem

    console consol consoled consol
  87. @purbon Don’t even think about phonetics, or other esoteric methods

  88. @purbon There is absolutely no need to experiment This only

    apply if are really curious to improve
  89. @purbon Improvements are thrown to users without caring much No

    metric or a/b test is run to check if the algorithm has improved remember…
  90. @purbon No measurements, no arguments

  91. @purbon Peace and love

  92. @purbon Time for cat pictures

  93. @purbon Wrap-up

  94. @purbon Many options to sabotage your project

  95. @purbon one with 100% success assured

  96. @purbon You should not care about your users, if you

    have content they will find it!!
  97. Presented sabotage tips 1. No need to listen to our

    users 2. Optimise for SEO 3. Search does not require UX 4. Search does not need tests 5. Silver bullet search 6. Search is a technical problem 7. No need to manage search
  98. @purbon Thanks a lot! Questions? disagreements? threads? Pere Urbon-Bayes Data

    Wrangler pere.urbon@{gmail.com, acm.org}