Skip to content

Commit

Permalink
Added schema to flatten the 2 cores into 1
Browse files Browse the repository at this point in the history
  • Loading branch information
Clara Martins committed Jan 4, 2022
1 parent 945cb41 commit d0907cc
Show file tree
Hide file tree
Showing 3 changed files with 298 additions and 2 deletions.
17 changes: 15 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,28 @@ solr-reviews : solr/reviews_schema.json data/reviews.json
docker cp data/reviews.json $(cn):/reviews.json
docker exec $(cn) bin/post -c reviews /reviews.json

solr : solr-games solr-reviews
solr-multicore: solr/schema.json data/games_and_reviews.json
docker exec $(cn) bin/solr create_core -c games_and_reviews
docker cp solr/enums_config.xml $(cn):/var/solr/data/games_and_reviews/enums_config.xml
docker cp solr/synonyms.txt $(cn):/var/solr/data/games_and_reviews/conf/synonyms.txt
curl -X POST -H 'Content-Type:application/json' \
--data-binary @solr/schema.json \
http://localhost:8983/solr/games_and_reviews/schema
docker cp data/games_and_reviews.json $(cn):/games_and_reviews.json
docker exec $(cn) bin/post -c games_and_reviews /games_and_reviews.json

solr : solr-games solr-reviews solr-multicore

clean-solr-games :
docker exec $(cn) bin/solr delete -c games

clean-solr-reviews :
docker exec $(cn) bin/solr delete -c reviews

clean-solr : clean-solr-games clean-solr-reviews
clean-solr-multicore :
docker exec $(cn) bin/solr delete -c games_and_reviews

clean-solr : clean-solr-games clean-solr-reviews clean-solr-multicore

query: /usr/bin/python3
python3 solr/query.py
25 changes: 25 additions & 0 deletions prepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,30 @@ def main():

print(Fore.GREEN + '\nDone.\n' + Style.RESET_ALL)

print(Fore.MAGENTA + Style.BRIGHT + '\n--- Flattening Data into a Single Index ---\n')

print(Fore.CYAN + '- Reading Games File...')
games_file = open('data/steam.json')
games = json.load(games_file)
games_file.close()

print(Fore.CYAN + '- Reading Reviews File...')
reviews_file = open('data/reviews.json')
reviews = json.load(reviews_file)
reviews_file.close()

print(Fore.CYAN + '- Adding the type...')
for game in games:
game['type'] = 'game'
for review in reviews:
review['type'] = 'review'

print(Fore.CYAN + '- Writing Games and Reviews File...')
file = open('data/games_and_reviews.json', 'w')
json.dump(games + reviews, file, separators=(',', ':'))
file.close()

print(Fore.GREEN + '\nDone.\n' + Style.RESET_ALL)

if __name__ == '__main__':
main()
258 changes: 258 additions & 0 deletions solr/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
{
"add-field-type": [
{
"name": "text_name",
"class": "solr.TextField",
"indexAnalyzer": {
"tokenizer": {
"class": "solr.StandardTokenizerFactory"
},
"filters": [
{
"class": "solr.ASCIIFoldingFilterFactory",
"preserveOriginal": true
},
{
"class": "solr.LowercaseFilterFactory"
}
]
},
"queryAnalyzer": {
"tokenizer": {
"class": "solr.StandardTokenizerFactory"
},
"filters": [
{
"class": "solr.ASCIIFoldingFilterFactory",
"preserveOriginal": true
},
{
"class": "solr.LowercaseFilterFactory"
},
{
"class": "solr.SynonymGraphFilterFactory",
"synonyms": "synonyms.txt",
"ignoreCase": true
}
]
}
},
{
"name": "enum_owners",
"class": "solr.EnumFieldType",
"indexed": true,
"docValues": true,
"enumsConfig": "enums_config.xml",
"enumName": "owners"
},
{
"name": "enum_platform",
"class": "solr.EnumFieldType",
"indexed": true,
"docValues": true,
"enumsConfig": "enums_config.xml",
"enumName": "platform"
},
{
"name": "enum_protondb_tier",
"class": "solr.EnumFieldType",
"indexed": true,
"docValues": true,
"enumsConfig": "enums_config.xml",
"enumName": "protondb_tier"
}
],
"add-field": [
{
"name": "type",
"type": "text_name",
"required": true
},
{
"name": "appid",
"type": "pint",
"required": true,
"indexed": false
},
{
"name": "name",
"type": "text_name",
"required": true
},
{
"name": "release_date",
"type": "pdate"
},
{
"name": "english",
"type": "boolean"
},
{
"name": "developer",
"type": "text_name",
"required": true,
"multiValued": true
},
{
"name": "publisher",
"type": "text_name",
"multiValued": true
},
{
"name": "platforms",
"type": "enum_platform",
"multiValued": true
},
{
"name": "required_age",
"type": "pint"
},
{
"name": "categories",
"type": "text_name",
"multiValued": true
},
{
"name": "genres",
"type": "text_name",
"multiValued": true
},
{
"name": "steamspy_tags",
"type": "text_name",
"required": true,
"multiValued": true
},
{
"name": "achievements",
"type": "pint"
},
{
"name": "positive_ratings",
"type": "pint"
},
{
"name": "negative_ratings",
"type": "pint"
},
{
"name": "total_ratings",
"type": "pint"
},
{
"name": "review_score",
"type": "pfloat"
},
{
"name": "weighted_score",
"type": "pfloat"
},
{
"name": "average_playtime",
"type": "pint"
},
{
"name": "median_playtime",
"type": "pint",
"required": true
},
{
"name": "price",
"type": "pfloat"
},
{
"name": "owners",
"type": "enum_owners"
},
{
"name": "detailed_description",
"type": "text_en"
},
{
"name": "short_description",
"type": "text_en"
},
{
"name": "about_the_game",
"type": "text_en"
},
{
"name": "main_time",
"type": "pint"
},
{
"name": "main_reports",
"type": "pint"
},
{
"name": "extras_time",
"type": "pint"
},
{
"name": "extras_reports",
"type": "pint"
},
{
"name": "completionist_time",
"type": "pint"
},
{
"name": "completionist_reports",
"type": "pint"
},
{
"name": "protondb_reports",
"type": "pint"
},
{
"name": "protondb_tier",
"type": "enum_protondb_tier"
},

{
"name": "author_steamid",
"type": "pint",
"indexed": false
},
{
"name": "playtime_at_review",
"type": "pint"
},
{
"name": "review",
"type": "text_en"
},
{
"name": "created",
"type": "pdate"
},
{
"name": "updated",
"type": "pdate"
},
{
"name": "recommended",
"type": "boolean"
},
{
"name": "votes_up",
"type": "pint"
},
{
"name": "votes_funny",
"type": "pint"
},
{
"name": "vote_score",
"type": "pfloat"
},
{
"name": "steam_purchase",
"type": "boolean"
},
{
"name": "received_for_free",
"type": "boolean"
}
]
}

0 comments on commit d0907cc

Please sign in to comment.