
Security News
Astral Launches pyx: A Python-Native Package Registry
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
backupify-rsolr-nokogiri
Advanced tools
=RSolr
A simple, extensible Ruby client for Apache Solr.
== Installation: gem sources -a http://gemcutter.org sudo gem install rsolr
== Example: require 'rubygems' require 'rsolr' solr = RSolr.connect :url=>'http://solrserver.com'
response = rsolr.select :q=>':'
response = rsolr.request '/catalog', :q=>':'
response = rsolr.catalog :q=>':'
== Querying Use the #select method to send requests to the /select handler: response = solr.select({ :q=>'washington', :start=>0, :rows=>10 })
The params sent into the method are sent to Solr as-is. The one exception is if a value is an array. When an array is used, multiple parameters with the same name are generated for the Solr query. Example:
solr.select :q=>'roses', :fq=>['red', 'violet']
The above statement generates this Solr query:
?q=roses&fq=red&fq=violet
Use the #request method for a custom request handler path: response = solr.request '/documents', :q=>'test'
A shortcut for the above example use a method call instead: response = solr.documents :q=>'test'
== Updating Solr Updating uses native Ruby structures. Hashes are used for single documents and arrays are used for a collection of documents (hashes). These structures get turned into simple XML "messages". Raw XML strings can also be used.
Raw XML via #update solr.update '' solr.update ''
Single document via #add solr.add :id=>1, :price=>1.00
Multiple documents via #add documents = [{:id=>1, :price=>1.00}, {:id=>2, :price=>10.50}] solr.add documents
When adding, you can also supply "add" xml element attributes and/or a block for manipulating other "add" related elements (docs and fields) when using the #add method:
doc = {:id=>1, :price=>1.00} add_attributes = {:allowDups=>false, :commitWithin=>10.0} solr.add(doc, add_attributes) do |doc| # boost each document doc.attrs[:boost] = 1.5 # boost the price field: doc.field_by_name(:price).attrs[:boost] = 2.0 end
Delete by id solr.delete_by_id 1 or an array of ids solr.delete_by_id [1, 2, 3, 4]
Delete by query: solr.delete_by_query 'price:1.00' Delete by array of queries solr.delete_by_query ['price:1.00', 'price:10.00']
Commit & optimize shortcuts solr.commit solr.optimize
== Response Formats The default response format is Ruby. When the :wt param is set to :ruby, the response is eval'd resulting in a Hash. You can get a raw response by setting the :wt to "ruby" - notice, the string -- not a symbol. RSolr will eval the Ruby string ONLY if the :wt value is :ruby. All other response formats are available as expected, :wt=>'xml' etc..
===Evaluated Ruby (default) solr.select(:wt=>:ruby) # notice :ruby is a Symbol ===Raw Ruby solr.select(:wt=>'ruby') # notice 'ruby' is a String
===XML: solr.select(:wt=>:xml) ===JSON: solr.select(:wt=>:json)
You can access the original request context (path, params, url etc.) by calling the #raw method: response = solr.select :q=>':' response.raw[:status_code] response.raw[:body] response.raw[:url]
The raw is a hash that contains the generated params, url, path, post data, headers etc., very useful for debugging and testing.
==Related Resources & Projects
== Note on Patches/Pull Requests
==Contributors
FAQs
Unknown package
We found that backupify-rsolr-nokogiri demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.
Security News
The latest Opengrep releases add Apex scanning, precision rule tuning, and performance gains for open source static code analysis.