mirror of
https://github.com/ilri/dspace-statistics-api.git
synced 2024-11-22 06:15:02 +01:00
app.py: Fix Solr queries for item views
According to dspace-api's Constants.java, items are type 2 and they use a unique ID field of `id` instead of `owningItem`. There is no need to check the bundleName for item types. Also, I decided to use the main Solr query for item IDs because the filter query parameter (fq) stores results in the filterCache and can be quite expensive with cores storing tens of millions of docu- ments (we currently have 149 million docs!). It makes sense to use the filter query parameter to reduce the result set returned by the main Solr query.
This commit is contained in:
parent
ed9d25294e
commit
a263996582
8
app.py
8
app.py
@ -18,16 +18,16 @@ class ItemResource:
|
||||
|
||||
# Get views
|
||||
res = solr.query(SOLR_CORE, {
|
||||
'q':'type:0',
|
||||
'fq':'owningItem:{0} AND isBot:false AND statistics_type:view AND -bundleName:ORIGINAL'.format(item_id)
|
||||
'q':'type:2 AND id:{0}'.format(item_id),
|
||||
'fq':'isBot:false AND statistics_type:view'
|
||||
}, rows=0)
|
||||
|
||||
views = res.get_num_found()
|
||||
|
||||
# Get downloads
|
||||
res = solr.query(SOLR_CORE, {
|
||||
'q':'type:0',
|
||||
'fq':'owningItem:{0} AND isBot:false AND statistics_type:view AND bundleName:ORIGINAL'.format(item_id)
|
||||
'q':'type:0 AND owningItem:{0}'.format(item_id),
|
||||
'fq':'isBot:false AND statistics_type:view AND bundleName:ORIGINAL'
|
||||
}, rows=0)
|
||||
|
||||
downloads = res.get_num_found()
|
||||
|
Loading…
Reference in New Issue
Block a user