This repository holds a small hands-on session to explore few ways of implementing text suggestions using Solr as a store for them. Some points:
- The aim is not using Solr as a whole for the text suggestions generation and ranking, but use it as a token/shingle/text store and let the inception of the suggestions happen outside.
- We'll mostly use Solr to provide a blend of prefixed infixed suggestions.
- The aim would be to build these suggestions whenever this repository is downloaded, and executed through either Solr web UI or CLI, regardless how they were generated.
- There would be some exceptions for some examples but mostly we'll use Solr.
- You should be familiar (or willing to play) with at least a bit of Python, a bit of Java, and a bit of Scala
- Location-based text suggestions with latitude/longitude modelling and Geohashes [⚙️Work in progress, mostly done]
- "Relevance" based iterations with supply/demand-based logic
- Using Point-wise Mutual Information (PMI) index to generate next autocomplete token on text suggestions [⚙️Work in progress, generation but no indexation]
docker
docker-compose
wget
make
command
On the docker-compose.yml
we have
- A solr9 local instance
- A mostly-fully-fledged
jupyter
environment with a Python kernel, whose main packages are - An AWS Glue containerized environment to execute some examples.
- Docker image is quite heavy so it is for the moment commented out from docker-compose for other examples
The idea for this structure is that we are providing the building blocks for suggestions with other tools (being them a jupyter environment or local AWS Glue) rather than plain Solr and we index them once they are ready.
Please execute on your terminal
$ make down && make up && sleep 15 && make build_suggestions_1