Skip to content

Commit 5e3768b

Browse files
authored
Merge pull request #134 from ncbo/feature/solr-ontologyrank-refresh
Feature: propagate ontology rank to Solr during the weekly rank job
2 parents 2532fed + 0b82865 commit 5e3768b

3 files changed

Lines changed: 40 additions & 17 deletions

File tree

Gemfile.lock

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ GIT
3737

3838
GIT
3939
remote: https://github.com/ncbo/ontologies_linked_data.git
40-
revision: 752e7dfeea06fa91e076447acb9dbd8420894523
40+
revision: c6f83eba9c21513c60977f93f93c6f08af958921
4141
branch: develop
4242
specs:
4343
ontologies_linked_data (0.0.1)
@@ -110,7 +110,7 @@ GEM
110110
childprocess (5.1.0)
111111
logger (~> 1.5)
112112
coderay (1.1.3)
113-
concurrent-ruby (1.3.6)
113+
concurrent-ruby (1.3.7)
114114
connection_pool (3.0.2)
115115
crack (1.0.1)
116116
bigdecimal
@@ -130,7 +130,7 @@ GEM
130130
mail (~> 2.7)
131131
et-orbi (1.4.0)
132132
tzinfo
133-
faraday (2.14.2)
133+
faraday (2.14.3)
134134
faraday-net_http (>= 2.0, < 3.5)
135135
json
136136
logger
@@ -261,10 +261,10 @@ GEM
261261
http-accept (1.7.0)
262262
http-cookie (1.1.6)
263263
domain_name (~> 0.5)
264-
i18n (1.14.8)
264+
i18n (1.15.2)
265265
concurrent-ruby (~> 1.0)
266266
io-console (0.8.2)
267-
json (2.19.7)
267+
json (2.20.0)
268268
json-canonicalization (1.0.0)
269269
json-ld (3.3.2)
270270
htmlentities (~> 4.3)
@@ -321,7 +321,7 @@ GEM
321321
uri (>= 0.11.1)
322322
net-http-persistent (4.0.8)
323323
connection_pool (>= 2.2.4, < 4)
324-
net-imap (0.6.4)
324+
net-imap (0.6.4.1)
325325
date
326326
net-protocol
327327
net-pop (0.1.2)
@@ -331,7 +331,7 @@ GEM
331331
net-smtp (0.5.1)
332332
net-protocol
333333
netrc (0.11.0)
334-
oj (3.17.1)
334+
oj (3.17.3)
335335
bigdecimal (>= 3.0)
336336
ostruct (>= 0.2)
337337
omni_logger (0.1.4)
@@ -382,7 +382,7 @@ GEM
382382
reline
383383
redis (5.4.1)
384384
redis-client (>= 0.22.0)
385-
redis-client (0.29.0)
385+
redis-client (0.30.0)
386386
connection_pool
387387
regexp_parser (2.12.0)
388388
reline (0.6.3)
@@ -420,7 +420,7 @@ GEM
420420
ruby-progressbar (1.13.0)
421421
ruby-xxHash (0.4.0.2)
422422
ruby2_keywords (0.0.5)
423-
rubyzip (3.3.1)
423+
rubyzip (3.4.0)
424424
rufus-scheduler (3.9.2)
425425
fugit (~> 1.1, >= 1.11.1)
426426
securerandom (0.4.1)
@@ -519,7 +519,7 @@ CHECKSUMS
519519
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
520520
childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec
521521
coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
522-
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
522+
concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0
523523
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
524524
crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
525525
dante (0.2.0) sha256=939776f04b4d253ffbbcf53341631aa2ee6e6cf314dedade2e60ac43b40a6fe6
@@ -531,7 +531,7 @@ CHECKSUMS
531531
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
532532
email_spec (2.3.1) sha256=5e8891319427fd6de0f3883dffe3c2ac4f5434359a33ed9c48e6d68e9f712f1b
533533
et-orbi (1.4.0) sha256=6c7e3c90779821f9e3b324c5e96fda9767f72995d6ae435b96678a4f3e2de8bc
534-
faraday (2.14.2) sha256=73ccb9994a9e8648f010e32eca2ae82e41c57860aa10932cda29418b9e0223ad
534+
faraday (2.14.3) sha256=1882247e6766615c8220b4392bf1d27f6ebb63d8e28267587cef1fb0bf37f278
535535
faraday-follow_redirects (0.5.0) sha256=5cde93c894b30943a5d2b93c2fe9284216a6b756f7af406a1e55f211d97d10ad
536536
faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588
537537
faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe
@@ -582,9 +582,9 @@ CHECKSUMS
582582
htmlentities (4.4.2) sha256=bbafbdf69f2eca9262be4efef7e43e6a1de54c95eb600f26984f71d2fe96c5c3
583583
http-accept (1.7.0) sha256=c626860682bfbb3b46462f8c39cd470fd7b0584f61b3cc9df5b2e9eb9972a126
584584
http-cookie (1.1.6) sha256=ba4b82be64de61dc281243dac70e3c382c45142f20268ed9276a3670c93feaa9
585-
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
585+
i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5
586586
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
587-
json (2.19.7) sha256=fe432c8639f6efff69f9d73b518a3705d9581ab93156f981ea72806e1e5bcc3e
587+
json (2.20.0) sha256=9362bc6e55a952b056abf9167cf053358181c904cb70cd6eee0808ea830fc32b
588588
json-canonicalization (1.0.0) sha256=d4848a8cca7534455c6721f2d9fc9e5e9adca49486864a898810024f67d59446
589589
json-ld (3.3.2) sha256=b9531893bf5bdc01db428e96953845a23adb1097125ce918ae0f97c4a6e1ab27
590590
jwt (3.2.0) sha256=5419b1fe37b1da0982bd07051f573a8b8789ab724c2aa7e785e4784a3ed217d7
@@ -611,12 +611,12 @@ CHECKSUMS
611611
net-ftp (0.3.9) sha256=307817ccf7f428f79d083f7e36dbb46a9d1d375e0d23027824de1866f0b13b65
612612
net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
613613
net-http-persistent (4.0.8) sha256=ef3de8319d691537b329053fae3a33195f8b070bbbfae8bf1a58c796081960e6
614-
net-imap (0.6.4) sha256=9a5598c67a3022c284d98430ef1d4948e7dbdb62596f61081ea8ca933270a02b
614+
net-imap (0.6.4.1) sha256=29f0360d75a7efd3539f16ac1957dea5c0a51ddeceb348db4553c3120914ea0d
615615
net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3
616616
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
617617
net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736
618618
netrc (0.11.0) sha256=de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f
619-
oj (3.17.1) sha256=b00687f10bf68a32bfb633b87624174faf0989a5c96aff2f3f96f992717ce782
619+
oj (3.17.3) sha256=ebe3967b0bb7ac4f206561d0d9ac8875b9973f778600d7b61b5c355662a707ed
620620
omni_logger (0.1.4) sha256=b61596f7d96aa8426929e46c3500558d33e838e1afd7f4735244feb4d082bb3e
621621
ontologies_linked_data (0.0.1)
622622
ontoportal_testkit (0.1.0)
@@ -642,7 +642,7 @@ CHECKSUMS
642642
rdf-xsd (3.3.0) sha256=fab51d27b20344237d9b622ef32e83e4c44940840bfc76a245ce6b6abba44772
643643
readline (0.0.4) sha256=6138eef17be2b98298b672c3ea63bf9cb5158d401324f26e1e84f235879c1d6a
644644
redis (5.4.1) sha256=b5e675b57ad22b15c9bcc765d5ac26f60b675408af916d31527af9bd5a81faae
645-
redis-client (0.29.0) sha256=0c65bf1f8f6dca22063ddb085c0bb2054feef6f03a84869f4161b18a9a15bea3
645+
redis-client (0.30.0) sha256=743f11ed42f0a41a0341554087b077479fec7e2d47a7c123fd90a12c0db5e477
646646
regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb
647647
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
648648
representable (3.2.0) sha256=cc29bf7eebc31653586849371a43ffe36c60b54b0a6365b5f7d95ec34d1ebace
@@ -656,7 +656,7 @@ CHECKSUMS
656656
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
657657
ruby-xxHash (0.4.0.2) sha256=201d8305ec1bd0bc32abeaecf7b423755dd1f45f4f4d02ef793b6bb71bf20684
658658
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
659-
rubyzip (3.3.1) sha256=2ed92112c7c43ba2b2527f35e6d99d9c2c99270b640aad5227516436481b1e4e
659+
rubyzip (3.4.0) sha256=6de39bc9eba302b635a476d16c9e16b0872ad24517c2f98f2b3a7ea23caff57b
660660
rufus-scheduler (3.9.2) sha256=55fa9e4db0ff69d7f38c804f17baba0c9bce5cba39984ae3c5cf6c039d1323b9
661661
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
662662
signet (0.21.0) sha256=d617e9fbf24928280d39dcfefba9a0372d1c38187ffffd0a9283957a10a8cd5b

lib/ncbo_cron/ontology_rank.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ def run
4848
logger.info('Storing rankings in Redis...')
4949
redis.set(ONTOLOGY_RANK_REDIS_FIELD, Marshal.dump(ontology_rank))
5050
logger.info('Rankings successfully stored in Redis')
51+
52+
logger.info('Propagating rankings to Solr term_search...')
53+
updated = LinkedData::Services::RankSolrPropagator.new(logger: logger).propagate
54+
logger.info("Propagated rankings to Solr for #{updated} ontologies")
5155
end
5256

5357
logger.info("Finished generating ontology rankings in #{time.round(3)} seconds")

test/test_ontology_rank.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require_relative 'test_case'
2+
require 'stringio'
3+
4+
class TestOntologyRankPropagation < TestCase
5+
def test_run_propagates_rank_to_solr_after_redis_write
6+
rank_job = NcboCron::Models::OntologyRank.new(Logger.new(StringIO.new))
7+
8+
# Isolate from analytics/UMLS and Redis: stub the computation and the store.
9+
rank_job.stubs(:rank_ontologies).returns({ 'BRO' => { bioportalScore: 0.5, umlsScore: 0.0 } })
10+
fake_redis = mock('redis')
11+
fake_redis.stubs(:set)
12+
Redis.stubs(:new).returns(fake_redis)
13+
14+
# The propagation step must run exactly once.
15+
LinkedData::Services::RankSolrPropagator.any_instance.expects(:propagate).once.returns(1)
16+
17+
rank_job.run
18+
end
19+
end

0 commit comments

Comments
 (0)