GithubHelp home page GithubHelp logo

splainer's Introduction

What?

This is a Shopfiy fork of the open-source Splainer app. We forked it so it can work seamlessly with Shopify's Elasticsearch infrastructure. Read below for details about what this app does.

Why?

You're a search developer trying to tune search results with Elasticsearch. You're engaged in search relevancy work.

You're probably stuck with the question of why? Why do search results come back in the order that they do? Elasticsearch exposes an explain syntax for you to try to explain search scoring. Unfortunately outside the simplest tasks, its a nightmare to read through. There are parsers require a lot of manual copy/pasting of explain information to the tool.

Splainer is different by being a sandbox. Paste in your Elasticsearch URL, query parameters and all. As you work with your query, changing parameters, Splainer shows you parsed and summarized explain information alongside your documents. Continue working and see how the search results change.

Read the blog post introducing Splainer here

Developing Splainer

Npm/Yarn Dev Environment

Splainer is written using AngularJS project. It requires npm, grunt, and yarn.

Be sure you've installed npm, yarn, and grunt on your machine.

npm install -g grunt-cli

With Npm/Yarn installed

From the root of the project, you should be able to run the following:

yarn
grunt test
grunt serve

Now browse to http://localhost:9000.

To build the project, simply run grunt dist to build the static artifacts in the dist/ folder.

grunt dist

You can test out the static artifacts via ruby -run -e httpd -- -p 5000 ./dist and going to http://localhost:5000.

Testing Notes

  • Unit tests are written using Karma.

  • The ./tests/splainer_test_links.html file is a list of links that invoke Splainer, both the local version and the deployed version against Elasticsearch, and is a great test to make sure the behavior hasn't reverted. Use this to make sure existing links still work!

License

Released under Apache 2

splainer's People

Contributors

bradfordcp avatar daredevil82 avatar dependabot[bot] avatar epugh avatar jameshageman avatar jorgelbg avatar omnifroodle avatar softwaredoug avatar urban82 avatar worleydl avatar ychaker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.