The array function doesn't operate in the way its being used here. Here are the docs on arrays:
https://solr.apache.org/guide/solr/latest/query-guide/vector-math.html#arrays Using a multi-valued field you could do something like this where test_fs is a multi-valued float field. The select function evaluates arrays automatically so they can be operated on by math expressions in a streaming context. select(search(jdata, fl=test_fs), dotProduct(test_fs, test_fs) as p) Which returns: { "result-set": { "docs": [ { "p": 1.9350813535659377 }, { "p": 2.2449532856850816 }, { "p": 1.7212359783803421 }, { "p": 2.761290822044021 }, Joel Bernstein http://joelsolr.blogspot.com/ On Wed, May 31, 2023 at 12:59 PM Alessandro Benedetti <a.benede...@sease.io> wrote: > Hi, > we are working on contributing the possibility of having vector-similarity > features, in Apache Solr Learning To Rank. > We are starting from the Lucene contribution of related function queries, > which we are close to merging. > Then we'll do the Solr part. > > What you are trying to do has not been tested, it may work but there's no > dedicated design for that so it may be quite clunky and expensive. > And by the way, Images are not visible in the mailing list. > > Cheers > -------------------------- > *Alessandro Benedetti* > Director @ Sease Ltd. > *Apache Lucene/Solr Committer* > *Apache Solr PMC Member* > > e-mail: a.benede...@sease.io > > > *Sease* - Information Retrieval Applied > Consulting | Training | Open Source > > Website: Sease.io <http://sease.io/> > LinkedIn <https://linkedin.com/company/sease-ltd> | Twitter > <https://twitter.com/seaseltd> | Youtube > <https://www.youtube.com/channel/UCDx86ZKLYNpI3gzMercM7BQ> | Github > <https://github.com/seaseltd> > > > On Wed, 31 May 2023 at 16:05, rajani m <rajinima...@gmail.com> wrote: > > > Validating the expression to begin with, it doesn't work. Vector math > > supports reading from an array of values so I tried the following > > expression. > > > > dotProduct(array(search(v9, > > q="id:1", > > fl="numeric_field_dfd", > > sort="numeric_field_dfd asc", > > qt="/export")),array(2)) > > > > > > where numeric_field_dfd - single valued dynamic field double type. I > > tried the multivalued double type assuming that it converts to an array > of > > values but it didn't work, so tried the single value to start with. > > > > output of the expression is an exception - > > > > [image: image.png] > > > > > > The value is not null as seen below, so am I wrong in terms of expression > > syntax then, any suggestions? > > > > > > [image: image.png] > > > > > > > > On Tue, May 30, 2023 at 4:47 PM rajani m <rajinima...@gmail.com> wrote: > > > >> Hi Solr Users, > >> > >> Does LTR Solr Feature > >> < > https://solr.apache.org/guide/8_7/learning-to-rank.html#feature-engineering> > support > >> streaming expressions? Steaming expr supports vector math > >> < > https://solr.apache.org/guide/7_5/vector-math.html#dot-product-and-cosine-similarity > >, > >> I am trying to configure stream apis vector math as a solr feature which > >> would fetch a vector from a document field and another from query param > and > >> compute cosine or dot product. > >> > >> For example, a LTR feature definition that would look like below, is > this > >> supported? Does LTR solr feature support parsing streaming api requests > and > >> its somewhat unique response that is not same as standard solr response? > >> > >> > >> { > >> "name": "vector_sim_score", > >> "class": "org.apache.solr.ltr.feature.SolrFeature", > >> "params": { > >> "q": > "expr=dotProduct(search(collection_name,q="id:$uniq_id",fl="doc_vector", > sort="from asc", qt="/export"), ${query_vector})" > >> }, > >> "store": "v1_feature_store" > >> } > >> > >> >