Skip to content

carlyrichmond/elastic-fu-finder

Repository files navigation

Elastic-fu Finder

Search Game for Teaching Search Using Elasticsearch

This project contains the full implementation of Fu-Finder using Elasticsearch. This game is a reincarnation of Fu-Finder developed by the author examining query behaviour. It is in the process of being revamped to show the differences in query behaviour required for keyword and semantic search, or vector search.

Fu-Finder Web Screenshot

Project Structure

This repo contains the following application layers:

  1. A React and Typescript UI, present under the src folder
  2. Typescript Netlify functions accessible under the functions folder
  3. Utility functions for accessing Elaticsearch via the Elasticsearch Node.js client

Running Locally

The UI and Netlify functions both need to be running to play the game locally.

Initial Setup

Before running locally please ensure you have the following pre-requisites installed:

  1. NPM
  2. Netlify CLI

The npm dependencies must be installed before running the application:

npm install

Run

Running both the UI and server components can be done using the nx serve command. Note that the cloud ID and API key for your Elastic cloud deployment is required to start the server, either by exporting environment variables or including your own .env file at the top of the project.

export ELASTIC_CLOUD_ID=my-elastic-deployment-cloud-id
export ELASTIC_API_KEY=my-api-key
netlify dev

The app is accessible via the web browser at http://localhost:8888.

Running unit tests

Run npm run test to execute the unit tests via Jest.

Resources

Development Resources

  1. React
  2. Elasticsearch Node.js/ JavaScript Client

Academic Resources

For those interested in the original Fu-Finder game, and the inspiring game PageHunt, check out the below academic papers and resources.

  1. Fu-Finder: A Game for Studying Querying Behaviours
  2. Page Hunt: Improving Search Engines Using Human Computation Games
  3. Internet Widgets- GWAP from Bing: Page Hunt

IR Datasets

For Elastic-fu Finder, we used a subset of the top 10 million websites as calculated via the Open PageRank initiative. Open PageRank uses a couple of sources for it's website dataset, including Common Crawl.

About

Search Game for Teaching Search Using Elasticsearch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published