Method: MiniSearch::InvertedIndex#remove
- Defined in:
- lib/mini_search/inverted_index.rb
#remove(id) ⇒ Object
Removes a document by id from index and documents list
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/mini_search/inverted_index.rb', line 49 def remove(id) document = @documents.dig(id, :document) terms = @indexing_pipeline.execute(document.fetch(:indexed_field)) terms.uniq.each do |term| @inverted_index[term] = @inverted_index[term].reject do |document, _tf| document.fetch(:id) == id end @inverted_index.delete(term) if @inverted_index[term].size == 0 end removed_document = @documents.delete(id) calculate_document_length_average removed_document end |