Reviu is a professional video game review search system that allows users to explore and discover game reviews through an intuitive interface. The system features advanced search capabilities, including semantic search, category filtering, and automatic topic clustering of results.
-
Advanced Search Options
- Traditional keyword-based search with query boosting
- Semantic search using sentence embeddings
- Category-based filtering (Controls, Multiplayer, Story, Technical, Relaxing)
- Minimum score filtering
-
Dynamic Result Clustering
- Automatic grouping of search results into relevant topics
- Interactive cluster exploration
- Detailed review viewing with similar game recommendations
-
Latest Reviews
- Showcase of recent game reviews
- Random selection for variety
-
Backend
- Flask (Python web framework)
- Apache Solr (Search engine)
- sentence-transformers (Semantic search capabilities)
- scikit-learn (Results clustering)
-
Frontend
- HTML5/CSS3
- Tailwind CSS
- JavaScript (Vanilla)
-
Prerequisites
# Install Docker and Docker Compose # Install Python 3.8+
-
Clone the Repository
git clone [repository-url] cd reviu
-
Environment Setup
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate pip install -r requirements.txt
-
Start Solr
make up make setup-cores make setup-semantic
-
Index Data
make index-data make process-semantic
-
Run the Application
python app.py
The application will be available at http://localhost:5000
The system supports various pre-defined queries for different gaming aspects:
// Controls & Gameplay Query
{
"params": {
"q": "Content:(controls good tight precise responsive fluid excellent smooth)",
"rows": 30,
"fl": "id,Title,Score,Subtitle,Content",
"sort": "score desc"
}
}
// Multiplayer Experience Query
{
"params": {
"q": "Content:(multiplayer online coop cooperative competitive pvp gameplay fun engaging players teams)",
"rows": 30,
"fl": "id,Title,Score,Subtitle,Content",
"sort": "score desc"
}
}
Main search interface with category filters and search options
Example of clustered search results
-
Adding New Queries
- Place query JSON files in the
queries
directory - Follow the existing query format
- Update the Makefile with new query targets
- Place query JSON files in the
-
Modifying Search Behavior
- Edit
construct_solr_query()
inapp.py
- Update Solr schema configurations in
docker/solr/conf/
- Edit
-
Customizing Result Clustering
- Modify the
cluster_results()
function inapp.py
- Adjust category keywords and scoring logic
- Modify the
- IGN for the game reviews dataset