FIX: Improve regexp for matching version lexeme.

FIX: Improve regexp for matching version lexeme.

Follow up to b70f1084f7aa6bf3640d2ce5100f8fabdef47dae

diff --git a/app/services/search_indexer.rb b/app/services/search_indexer.rb
index 2ee91b7..acd343a 100644
--- a/app/services/search_indexer.rb
+++ b/app/services/search_indexer.rb
@@ -59,7 +59,7 @@ class SearchIndexer
     tsvector.scan(/'(([a-zA-Z0-9]+\.)+[a-zA-Z0-9]+)'\:([\w+,]+)/).reduce(additional_lexemes) do |array, (lexeme, _, positions)|
       count = 0
 
-      if lexeme !~ /^(\d+\.)?(\d+\.)?(\*|\d+)$/
+      if lexeme !~ /^(\d+\.)?(\d+\.)*(\*|\d+)$/
         loop do
           count += 1
           break if count >= 10 # Safeguard here to prevent infinite loop when a term has many dots
diff --git a/spec/services/search_indexer_spec.rb b/spec/services/search_indexer_spec.rb
index fc8624e..e1af96d 100644
--- a/spec/services/search_indexer_spec.rb
+++ b/spec/services/search_indexer_spec.rb
@@ -143,10 +143,17 @@ describe SearchIndexer do
 
     it 'should not tokenize versions' do
       post.topic.update!(title: "this is a title that I am testing")
-      post.update!(raw: '1.2.2')
+      post.update!(raw: '123.223')
 
       expect(post.post_search_data.search_data).to eq(
-        "'1.2.2':10 'test':8A 'titl':4A 'uncategor':9B"
+        "'123.223':10 'test':8A 'titl':4A 'uncategor':9B"
+      )
+
+      post.update!(raw: '15.2.231.423')
+      post.reload
+
+      expect(post.post_search_data.search_data).to eq(
+        "'15.2.231.423':10 'test':8A 'titl':4A 'uncategor':9B"
       )
     end
 

GitHub sha: 0f53ad58