Class: Buhos::AnalysisSearches
- Inherits:
-
Object
- Object
- Buhos::AnalysisSearches
- Defined in:
- lib/buhos/analysis_searches.rb
Overview
Class to analysis groups of searches:
-
Resolutions of each document on every stage
-
Databases and types of every search
Instance Attribute Summary collapse
-
#searches ⇒ Object
readonly
Returns the value of attribute searches.
-
#searches_id ⇒ Object
readonly
Returns the value of attribute searches_id.
Instance Method Summary collapse
- #canonical_documents_id ⇒ Object
-
#initialize(searches) ⇒ AnalysisSearches
constructor
A new instance of AnalysisSearches.
- #records ⇒ Object
- #records_by_cd ⇒ Object
- #records_by_cd_summary ⇒ Object
- #resolutions_by_cd(sr, stage) ⇒ Object
- #resolutions_by_cd_summary(sr, stage) ⇒ Object
- #sql_in ⇒ Object
- #summary_sources_databases ⇒ Object
Constructor Details
#initialize(searches) ⇒ AnalysisSearches
Returns a new instance of AnalysisSearches.
37 38 39 40 41 |
# File 'lib/buhos/analysis_searches.rb', line 37 def initialize(searches) @searches=searches @searches_id=@searches.map(&:id) end |
Instance Attribute Details
#searches ⇒ Object (readonly)
Returns the value of attribute searches.
35 36 37 |
# File 'lib/buhos/analysis_searches.rb', line 35 def searches @searches end |
#searches_id ⇒ Object (readonly)
Returns the value of attribute searches_id.
36 37 38 |
# File 'lib/buhos/analysis_searches.rb', line 36 def searches_id @searches_id end |
Instance Method Details
#canonical_documents_id ⇒ Object
48 49 50 |
# File 'lib/buhos/analysis_searches.rb', line 48 def canonical_documents_id records.map(&:canonical_document_id).uniq end |
#records ⇒ Object
45 46 47 |
# File 'lib/buhos/analysis_searches.rb', line 45 def records Record.join(:records_searches, record_id: :id ).where(search_id: @searches_id) end |
#records_by_cd ⇒ Object
51 52 53 54 |
# File 'lib/buhos/analysis_searches.rb', line 51 def records_by_cd $db["SELECT canonical_document_id, COUNT(*) as n FROM records_searches rs INNER JOIN records r ON rs.record_id=r.id WHERE rs.search_id #{sql_in} GROUP BY r.canonical_document_id ORDER BY n desc"] end |
#records_by_cd_summary ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/buhos/analysis_searches.rb', line 74 def records_by_cd_summary records_by_cd.inject({}) do |ac,v| ac[v[:n]]||=0 ac[v[:n]]+=1 ac end end |
#resolutions_by_cd(sr, stage) ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'lib/buhos/analysis_searches.rb', line 55 def resolutions_by_cd(sr,stage) ars=Analysis_SR_Stage.new(sr,stage) rbc=ars.resolutions_by_cd canonical_documents_id.inject({}) do |ac,v| ac[v]=rbc[v] ac end end |
#resolutions_by_cd_summary(sr, stage) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/buhos/analysis_searches.rb', line 64 def resolutions_by_cd_summary(sr,stage) resolutions_by_cd(sr, stage).inject({}) {|ac,v| type=v[1].nil? ? Resolution::PREVIOUS_REJECT : v[1] ac[type]||=0 ac[type]+=1 ac } end |
#sql_in ⇒ Object
42 43 44 |
# File 'lib/buhos/analysis_searches.rb', line 42 def sql_in "IN (#{searches_id.join(",")})" end |
#summary_sources_databases ⇒ Object
81 82 83 84 85 86 |
# File 'lib/buhos/analysis_searches.rb', line 81 def summary_sources_databases $db["SELECT s.source, s.bibliographic_database_id, COUNT(*) as n FROM records r INNER JOIN records_searches rs ON r.id=rs.record_id INNER JOIN searches s ON s.id=rs.search_id WHERE s.id #{sql_in} GROUP BY s.source, s.bibliographic_database_id ORDER BY s.source, s.bibliographic_database_id"] end |