Skip to content

Commit

Permalink
Merge pull request #4300 from vespa-engine/vekterli/test-tensor-in-vi…
Browse files Browse the repository at this point in the history
…sitor-selection

Test using tensor fields as part of document selections
  • Loading branch information
geirst authored Dec 5, 2024
2 parents 7a51d9e + da2b5aa commit aa8d283
Showing 1 changed file with 30 additions and 8 deletions.
38 changes: 30 additions & 8 deletions tests/search/tensor_feed/tensor_feed.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,21 @@ def test_tensor_json_feed
puts "search_docs: #{search_docs}"
assert_tensor_docs(search_docs)

visit_response = vespa.document_api_v1.visit(:selection => "test", :fieldSet => "test:[document]", :cluster => "search", :wantedDocumentCount => 10)
puts "visit_response: #{visit_response}"
visit_docs = extract_visit_docs(visit_response)
puts "visit_docs: #{visit_docs}"
visit_docs = visit_tensor_docs('test.my_tensor')
assert_visit_result_tensor_present(visit_docs)

visit_docs = visit_tensor_docs('not test.my_tensor')
assert_visit_result_tensor_not_present(visit_docs)

visit_docs = visit_tensor_docs('test')
assert_tensor_docs(visit_docs)

feed(:file => @base_dir + "updates.json")
search_docs = extract_docs(search("query=sddocname:test&format=json&nocache").json)
puts "search_docs: #{search_docs}"
assert_tensor_docs_after_updates(search_docs)

visit_response = vespa.document_api_v1.visit(:selection => "test", :fieldSet => "test:[document]", :cluster => "search", :wantedDocumentCount => 10)
puts "visit_response: #{visit_response}"
visit_docs = extract_visit_docs(visit_response)
puts "visit_docs: #{visit_docs}"
visit_docs = visit_tensor_docs('test')
assert_tensor_docs_after_updates(visit_docs)
end

Expand Down Expand Up @@ -86,6 +86,28 @@ def run_tensor_json_feed_attribute
assert_tensor_docs_after_updates(search_docs)
end

def visit_tensor_docs(selection)
visit_response = vespa.document_api_v1.visit(:selection => selection, :fieldSet => "test:[document]", :cluster => "search", :wantedDocumentCount => 10)
puts "visit_response: #{visit_response}"
visit_docs = extract_visit_docs(visit_response)
puts "visit_docs: #{visit_docs}"
visit_docs
end

def extract_doc_ids(docs)
docs.map { |d| d['id'] }.to_a
end

def assert_visit_result_tensor_present(docs)
ids = extract_doc_ids(docs)
assert_equal(ids, ['id:test:test::1', 'id:test:test::2', 'id:test:test::3'])
end

def assert_visit_result_tensor_not_present(docs)
ids = extract_doc_ids(docs)
assert_equal(ids, ['id:test:test::0'])
end

def assert_tensor_docs(docs)
assert_nil(get_tensor_field(docs[0]))
assert_tensor_field([], docs[1])
Expand Down

0 comments on commit aa8d283

Please sign in to comment.