Also, I am using the SolrAdmin Analysis UI to verify how Solr is tokenizing
the messages and verifying manually position between tokens.
Debug view of the query side:
For query:
"*params*":{
"q":"{!lucene}SpanNearQuery(body,(money question),5,true)",
"df":"body",
"debug":"true",
"indent":"true",
"q.op":"OR",
"wt":"json"}},
It seems odd that in the parsed query that the "body" field named is
pre-appended to the value 5 and the text true.
"*debug*":{
"rawquerystring":"{!lucene}SpanNearQuery(body,(money question),5,true)",
"querystring":"{!lucene}SpanNearQuery(body,(money question),5,true)",
"parsedquery":"body:spannearquery (body:body (body:money body:question)
(body:5 body:true))",
"*parsedquery_toString*":*"body:spannearquery *(body:body (body:money
body:question)* (body:5 body:true*))",
"explain":{
On Thu, Sep 4, 2025 at 12:04 PM mtn search <[email protected]> wrote:
> Thanks Tim! Yes I have tried a variety of values and am aware of ordering
> vs non ordering. I am getting more results than expected and some that do
> not match the proximity criteria. So when I set it to a small value like
> 2, I was seeking to see the result count drop significantly as many would
> not match criteria. Unfortunately, the count does not drop. Looks like a
> fundamental problem with how I am using the syntax. Still researching, and
> open to suggestions.
>
> Matt
>
> On Thu, Sep 4, 2025 at 11:54 AM Tim Casey <[email protected]> wrote:
>
>> usually the span and proximities are off-by-one issues. Specifically the
>> order of the tokens will change the distance calculation. I do not have
>> an
>> example off the top of my head. But, when I was doing this, I usually
>> started with a larger span and brought it down through looking at results.
>>
>> This is the case for the old 5~"phrase words" syntax.
>>
>> As an aside, "Not working" is taken by me to mean you are not getting
>> results but the query passes parse. Not working could mean a lot more in
>> this context. So I am suggesting, instead of 2, try 10.
>>
>> On Thu, Sep 4, 2025 at 10:43 AM mtn search <[email protected]> wrote:
>>
>> > Hello,
>> >
>> > Looking for guidance on approaches to implement a proximity search
>> between
>> > phrases.
>> >
>> > Initially tried:
>> >
>> >
>> "q":"{!lucene}spanNear(spanNear(spanNear(spanTerm(body:off),spanTerm(body:the),0,true),
>> > spanTerm(body: record),0,true),
>> spanNear(spanTerm(body:new),spanTerm(body:
>> > information),0,true) , 2N,false)",
>> > "defType":"lucene",
>> > "df":"body",
>> >
>> > However then simplified to just two terms:
>> > "q":"{!lucene}spanNear(spanTerm(body:off),spanTerm(body:call),2,true)",
>> > "defType":"lucene",
>> > "df":"body",
>> >
>> > Both are not working. Any tips? Currently on Solr 9.4, but will likely
>> > need to run for some time on a Solr 6 instance.
>> >
>> > Thanks,
>> > Matt
>> >
>>
>