class ChinoRuby::Search
Constants
- IDs
Public Instance Methods
complex_search_documents(schema_id, result_type, sort, query, limit=nil, offset=nil)
click to toggle source
The new Search
API accept a query hash, documented here: console.test.chino.io/docs/v1#header-search-query query hash need to be converted to json e.g. to build this JSON query {
"and": [ { "field": "user_id", "type": "eq", "value": "aaaaaaa" }, { "or": [ { "field": "first_name", "type": "like", "value": "*Mario*" }, { "field": "last_name", "type": "like", "value": "*Mario*" } ] } ]
}
You can use code like this:
query = { and: [] } query << ChinoFilterOption.new
('user_id', 'eq', “aaaaaaa”)
or_conditions = { or: [] } or_conditions << ChinoFilterOption.new
('first_name', 'like', “Mario”) or_conditions << ChinoFilterOption.new
('last_name', 'like', “Mario”) query << or_conditions
# File lib/chino_ruby/classes.rb, line 1395 def complex_search_documents(schema_id, result_type, sort, query, limit=nil, offset=nil) check_string(schema_id) check_string(result_type) check_json(sort) check_json(query) data = { result_type: result_type, query: query, sort: sort}.to_json docs = GetDocumentsResponse.new docs.from_json(post_resource("/search/documents/#{schema_id}", data, limit || ChinoRuby::QUERY_DEFAULT_LIMIT, offset || 0).to_json) case result_type when 'ONLY_ID' docs.IDs = docs.IDs.map { |id| id } when 'FULL_CONTENT', 'NO_CONTENT' docs.documents = docs.documents.map do |d| doc = Document.new doc.from_json(d.to_json) end end docs end
search_documents(schema_id, result_type, filter_type, sort, filter, limit=nil, offset=nil)
click to toggle source
# File lib/chino_ruby/classes.rb, line 1334 def search_documents(schema_id, result_type, filter_type, sort, filter, limit=nil, offset=nil) check_string(schema_id) check_string(result_type) check_string(filter_type) check_json(sort) check_json(filter) data = {"result_type": result_type, "filter_type": filter_type, "filter": filter, "sort": sort}.to_json docs = GetDocumentsResponse.new if limit==nil && offset==nil docs.from_json(post_resource("/search/documents/#{schema_id}", data, ChinoRuby::QUERY_DEFAULT_LIMIT, 0).to_json) else docs.from_json(post_resource("/search/documents/#{schema_id}", data, limit, offset).to_json) end ds = docs.documents docs.documents = [] ds.each do |d| doc = Document.new doc.from_json(d.to_json) docs.documents.push(doc) end docs end
search_users(user_schema_id, result_type, filter_type, sort, filter, limit=nil, offset=nil)
click to toggle source
# File lib/chino_ruby/classes.rb, line 1419 def search_users(user_schema_id, result_type, filter_type, sort, filter, limit=nil, offset=nil) check_string(user_schema_id) check_string(result_type) check_string(filter_type) check_json(sort) check_json(filter) data = {"result_type": result_type, "filter_type": filter_type, "filter": filter, "sort": sort}.to_json users = GetUsersResponse.new if limit==nil && offset==nil users.from_json(post_resource("/search/users/#{user_schema_id}", data, ChinoRuby::QUERY_DEFAULT_LIMIT, 0).to_json) else users.from_json(post_resource("/search/users/#{user_schema_id}", data, limit, offset).to_json) end us = users.users users.users = [] us.each do |u| user = User.new user.from_json(u.to_json) users.users.push(user) end users end