diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb index 51e747d9bd442255692884d08b39a4674fb7166a..96d2cb6319c4ba4f9ad6a0575b19a42e2343afe1 100644 --- a/app/repositories/orient_db/learning_object_repository.rb +++ b/app/repositories/orient_db/learning_object_repository.rb @@ -77,7 +77,7 @@ module OrientDb SELECT EXPAND(rid) FROM index:learningobject_search WHERE key LUCENE '#{qry}' - ", limit: -1 + ", limit: 10000 build_objects(learning_objects_hash) || [] end diff --git a/config/orientdb.yml b/config/orientdb.yml index 7c25a5c84c4c90bca4a1b078509cc12039527486..07945002eacbdb755ce3058bf6ff217959fc76e8 100644 --- a/config/orientdb.yml +++ b/config/orientdb.yml @@ -1,6 +1,6 @@ development: &development host: localhost - database: Teste2 + database: PortalMEC username: admin password: admin port: 2480 diff --git a/lib/orient_db/migration.rb b/lib/orient_db/migration.rb index 0d282d3183fd08b1481242d98b2bfd519a85d60f..466003fa1593ec70c0225db75f9a3bd8a22287f1 100644 --- a/lib/orient_db/migration.rb +++ b/lib/orient_db/migration.rb @@ -35,19 +35,33 @@ module OrientDb end end - def add_index(klass, property, type, engine=nil, metadata=nil) + def add_index(klass, properties, type, name=nil, engine=nil, metadata=nil) engine = engine.nil? ? "" : " ENGINE #{engine}" metadata = metadata.nil? ? "" : " METADATA #{metadata.to_s}" + props = stringify(properties,", ") + name = name.nil? ? "#{klass}."+stringify(properties,"_") : name; + begin - @client.command "CREATE INDEX #{klass}.#{property} ON #{klass} (#{property}) #{type}#{engine}#{metadata}" + index = "CREATE INDEX #{name} ON #{klass} (#{props}) #{type}#{engine}#{metadata}" + @client.command index rescue Orientdb4r::ServerError => e # If the index already exists OrientDB will give an error containing this message - unless e.message.include? "Index with name #{klass.downcase}.#{property.downcase}" + unless e.message.include? "Index with name #{name.downcase}" puts "Error at index creation" p e.message - p.backtrace + p e.backtrace end end end + + private + def stringify(array, separator) + str = "" + array.each do |value| + str += value.to_s+separator + end + str[0..-(separator.size+1)] + end + end end \ No newline at end of file diff --git a/lib/orient_db/migrations/create_attribute.rb b/lib/orient_db/migrations/create_attribute.rb index db0de64764326513ede16021446a9368fe9fb9c0..b297b6849e947efc44d1899e53f4164284f83fe3 100644 --- a/lib/orient_db/migrations/create_attribute.rb +++ b/lib/orient_db/migrations/create_attribute.rb @@ -5,9 +5,9 @@ class OrientDb::Migrations::CreateAttribute < OrientDb::Migration c.property 'key', :string c.property 'value', :string end - add_index 'Attribute', 'key', "NOTUNIQUE_HASH_INDEX" + add_index 'Attribute', ['key'], "NOTUNIQUE_HASH_INDEX" metadata = {:analyzer => "org.apache.lucene.analysis.br.BrazilianAnalyzer"} - add_index 'Attribute', 'value', "FULLTEXT", "LUCENE", metadata.to_json + add_index 'Attribute', ['value'], "FULLTEXT", nil, "LUCENE", metadata.to_json end def down diff --git a/lib/orient_db/migrations/create_learning_object.rb b/lib/orient_db/migrations/create_learning_object.rb index 194fedb43ebad70e53e02647dc1a404c4dd7a0a3..7d3a15a66f66ad31de9cd7fcf201904e3a61848b 100644 --- a/lib/orient_db/migrations/create_learning_object.rb +++ b/lib/orient_db/migrations/create_learning_object.rb @@ -8,7 +8,9 @@ class OrientDb::Migrations::CreateLearningObject < OrientDb::Migration c.property 'type', :string c.property 'metadata', :string end - add_index 'LearningObject', 'id_dspace', :type => "UNIQUE_HASH_INDEX" + add_index 'LearningObject', ['id_dspace'], "UNIQUE_HASH_INDEX" + metadata = {:analyzer => "org.apache.lucene.analysis.br.BrazilianAnalyzer"} + add_index 'LearningObject', ['name', 'description'], "FULLTEXT", "learningobject_search", "LUCENE", metadata.to_json end def down diff --git a/lib/orient_db/migrations/create_user.rb b/lib/orient_db/migrations/create_user.rb index 887c6be713a59ec266711512f01e704e5e5199b1..3c7406f4338f4b8cdebfd5355cebc217ece45bc4 100644 --- a/lib/orient_db/migrations/create_user.rb +++ b/lib/orient_db/migrations/create_user.rb @@ -4,7 +4,7 @@ class OrientDb::Migrations::CreateUser < OrientDb::Migration create_class 'User', 'V' do |c| c.property 'p_id', :integer, :mandatory => true, :notnull => true end - add_index 'User', 'p_id', "UNIQUE_HASH_INDEX" + add_index 'User', ['p_id'], "UNIQUE_HASH_INDEX" end def down