I tried today with plus but always got same error. { "responseHeader":{ "status":400, "QTime":2, "params":{ "hl":"on", "pt": "54.69738679999999,25.224815300000046", "fl":"score,*,store:[subquery fromIndex=stores]", "store.rows":"1", "fq":"{!edismax qf=\"title description\" v=\"iphone xr 64gb\" mm=3<90%}", "hl.simple.pre":"</em>", " store.q":"{!terms f=site_id v=$row.site_id}", "store.sfield":"coordinates", "hl.fl":"title description", "group.field":"site_id", "_":"1573559644298", " group":"true", "store.fq":"{!geofilt}", "d":"100", "group.limit":"2", " store.d":"100", "store.pt":"54.69738679999999,25.224815300000046", "store.fl ":"*,score", "sort":"score desc", "sfield":"coordinates", "q":"{!join from=site_id to=site_id fromIndex=stores score=max}+{!geofilt}{!func}geodist()", "hl.simple.post":"</em>", "hl.q":"{!edismax qf=$hl.fl v=\"iphone xr 64gb\"}", "hl.method":"unified", "debugQuery":"on"}}, "error":{ "metadata":[ "error-class","org.apache.solr.common.SolrException", "root-error-class","org.apache.solr.parser.ParseException"], "msg":"org.apache.solr.search.SyntaxError: Cannot parse '+{!geofilt}{!func}geodist()': Encountered \" \")\" \") \"\" at line 1, column 26.\nWas expecting one of:\n <EOF> \n <AND> ...\n <OR> ...\n <NOT> ...\n \"+\" ...\n \"-\" ...\n <BAREOPER> ...\n \"(\" ...\n \"*\" ...\n \"^\" ...\n <QUOTED> ...\n <TERM> ...\n <PREFIXTERM> ...\n <WILDTERM> ...\n <REGEXPTERM> ...\n \"[\" ...\n \"{\" ...\n <LPARAMS> ...\n \"filter(\" ...\n <NUMBER> ...\n ", "code":400}}
On Thu, Nov 14, 2019 at 8:45 PM Mikhail Khludnev <m...@apache.org> wrote: > It should be like > "q":"{!join from=site_id to=site_id fromIndex=stores > score=max}+{!geofilt} {!func}geodist() ", > post debugQuery > > On Thu, Nov 14, 2019 at 4:44 PM Vasily Ogar <ogar.vas...@gmail.com> wrote: > > > I was glad too early because it can only sort or only filter, but can't > do > > together :(. It takes the only first argument, in my case it geodist or > > geofilt > > > > On Thu, Nov 14, 2019 at 11:11 AM Vasily Ogar <ogar.vas...@gmail.com> > > wrote: > > > > > Hello, > > > I fixed it. If I need to sort by price: > > > "q":"{!join from=site_id to=site_id fromIndex=stores}*:*", > > > "fq":"{!edismax qf=\"title description\" v=\"iphone xr 64gb\" > mm=3<90%}", > > > "fl":"score,*,store:[subquery fromIndex=stores]", > > > "store.q":"{!terms f=site_id v=$row.site_id}", "store.rows":"1", > > "store.fl > > > ":"*,score", "sort":"price_low desc", > > > "hl":"on", "hl.simple.pre":"<strong>", "hl.simple.post":"</strong>", > > > "hl.q":"{!edismax qf=$hl.fl v=\"iphone xr 64gb\"}", "hl.fl":"title > > > description", "hl.method":"unified", "group.field":"site_id", "group": > > > "true" > > > "group.limit":"2", > > > > > > And if I need to sort by geodist: > > > "q":"{!join from=site_id to=site_id fromIndex=stores > > > score=max}{!func}geodist(){!geofilt}", > > > "d":"100", > > > "sfield":"coordinates", > > > "pt":"54.69738679999999,25.224815300000046" > > > "fq":"{!edismax qf=\"title description\" v=\"iphone xr 64gb\" > mm=3<90%}", > > > "fl":"score,*,store:[subquery fromIndex=stores]", > > > "store.q":"{!terms f=site_id v=$row.site_id}", "store.rows":"1", > > "store.fl > > > ":"*,score", > > > "store.fq":"{!geofilt}", > > > "store.sfield":"coordinates", > > > "store.d":"100", "store.pt":"54.69738679999999,25.224815300000046", > > "sort > > > ":"score desc", > > > "hl":"on", "hl.simple.pre":"<strong>", "hl.simple.post":"</strong>", > > > "hl.q":"{!edismax qf=$hl.fl v=\"iphone xr 64gb\"}", "hl.fl":"title > > > description", "hl.method":"unified", "group.field":"site_id", "group": > > > "true" > > > "group.limit":"2", > > > > > > On Tue, Nov 12, 2019 at 6:54 PM Vasily Ogar <ogar.vas...@gmail.com> > > wrote: > > > > > >> Thank you for advice, now it working as expected. Maybe you know how > to > > >> integrate with dismax? > > >> > > >> On Tue, Nov 12, 2019 at 6:10 PM Mikhail Khludnev <m...@apache.org> > > wrote: > > >> > > >>> tlrd; > > >>> I noticed func under fq that make no sense. Only q or sort yield > > scores. > > >>> > > >>> On Tue, Nov 12, 2019 at 6:43 PM Vasily Ogar <ogar.vas...@gmail.com> > > >>> wrote: > > >>> > > >>> > First of all, thank you for your help. > > >>> > Now it doesn't show any errors, but somehow score is based on the > > >>> title and > > >>> > description but not on the geodist. > > >>> > "params":{ "hl":"on", "pt":"54.69738679999999,25.224815300000046", > > >>> > "fl":"score,*,store:[subquery > > >>> > fromIndex=stores]", "store.rows":"1", "fq":"{!join from=site_id > > >>> to=site_id > > >>> > fromIndex=stores score=max}{!func}geodist()", > "store.sort":"geodist() > > >>> asc", > > >>> > "hl.simple.pre":"</em>", "store.q":"{!terms f=site_id > > >>> v=$row.site_id}", " > > >>> > store.sfield":"coordinates", "hl.fl":"title description", > > >>> "group.field": > > >>> > "site_id", "_":"1573559644298", "group":"true", > > >>> "store.fq":"{!geofilt}", "d > > >>> > ":"100", "{!geofilt}":"", "group.limit":"2", "store.d":"100", " > > >>> store.pt": > > >>> > "54.69738679999999,25.224815300000046", "store.fl":"*,score", > > >>> "sort":"score > > >>> > desc", "sfield":"coordinates", "q":"title:\"iphone xr 64gb\"", > > >>> > "group.main": > > >>> > "true", "hl.simple.post":"</em>", "debugQuery":"on"} > > >>> > > > >>> > Here is debug: > > >>> > "debug":{ "rawquerystring":"title:\"iphone xr 64gb\"", > > >>> > "querystring":"title:\"iphone > > >>> > xr 64gb\"", "parsedquery":"PhraseQuery(title:\"iphon xr 64gb\")", " > > >>> > parsedquery_toString":"title:\"iphon xr 64gb\"", "explain":{ > > "product: > > >>> > https://www.ideal.lt/iphone/iphone-xr/iphone-xr-64gb-yellow > > >>> ":"\n3.9714882 > > >>> > = > > >>> > weight(title:\"iphon xr 64gb\" in 568) [SchemaSimilarity], result > > of:\n > > >>> > 3.9714882 = score(freq=1.0), product of:\n 6.8681135 = idf, sum > of:\n > > >>> > 1.1837479 = idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) > > >>> from:\n 459 > > >>> > = n, number of documents containing term\n 1500 = N, total number > of > > >>> > documents with field\n 3.3156862 = idf, computed as log(1 + (N - n > + > > >>> 0.5) / > > >>> > (n + 0.5)) from:\n 54 = n, number of documents containing term\n > 1500 > > >>> = N, > > >>> > total number of documents with field\n 2.3686793 = idf, computed as > > >>> log(1 + > > >>> > (N - n + 0.5) / (n + 0.5)) from:\n 140 = n, number of documents > > >>> containing > > >>> > term\n 1500 = N, total number of documents with field\n 0.5782502 = > > tf, > > >>> > computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:\n > > 1.0 = > > >>> > phraseFreq=1.0\n 1.2 = k1, term saturation parameter\n 0.75 = b, > > length > > >>> > normalization parameter\n 4.0 = dl, length of field\n 8.384666 = > > avgdl, > > >>> > average length of field\n", "product: > > >>> > https://www.ideal.lt/iphone/iphone-xr/iphone-xr-64gb-white > > ":"\n3.9714882 > > >>> = > > >>> > weight(title:\"iphon xr 64gb\" in 569) [SchemaSimilarity], result > > of:\n > > >>> > 3.9714882 = score(freq=1.0), product of:\n 6.8681135 = idf, sum > of:\n > > >>> > 1.1837479 = idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) > > >>> from:\n 459 > > >>> > = n, number of documents containing term\n 1500 = N, total number > of > > >>> > documents with field\n 3.3156862 = idf, computed as log(1 + (N - n > + > > >>> 0.5) / > > >>> > (n + 0.5)) from:\n 54 = n, number of documents containing term\n > 1500 > > >>> = N, > > >>> > total number of documents with field\n 2.3686793 = idf, computed as > > >>> log(1 + > > >>> > (N - n + 0.5) / (n + 0.5)) from:\n 140 = n, number of documents > > >>> containing > > >>> > term\n 1500 = N, total number of documents with field\n 0.5782502 = > > tf, > > >>> > computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:\n > > 1.0 = > > >>> > phraseFreq=1.0\n 1.2 = k1, term saturation parameter\n 0.75 = b, > > length > > >>> > normalization parameter\n 4.0 = dl, length of field\n 8.384666 = > > avgdl, > > >>> > average length of field\n", "product: > > >>> > https://istore.lt/iphone-xr-64gb-blue.html":"\n3.9714882 = > > >>> > weight(title:\"iphon xr 64gb\" in 28) [SchemaSimilarity], result > > of:\n > > >>> > 3.9714882 = score(freq=1.0), product of:\n 6.8681135 = idf, sum > of:\n > > >>> > 1.1837479 = idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) > > >>> from:\n 459 > > >>> > = n, number of documents containing term\n 1500 = N, total number > of > > >>> > documents with field\n 3.3156862 = idf, computed as log(1 + (N - n > + > > >>> 0.5) / > > >>> > (n + 0.5)) from:\n 54 = n, number of documents containing term\n > 1500 > > >>> = N, > > >>> > total number of documents with field\n 2.3686793 = idf, computed as > > >>> log(1 + > > >>> > (N - n + 0.5) / (n + 0.5)) from:\n 140 = n, number of documents > > >>> containing > > >>> > term\n 1500 = N, total number of documents with field\n 0.5782502 = > > tf, > > >>> > computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:\n > > 1.0 = > > >>> > phraseFreq=1.0\n 1.2 = k1, term saturation parameter\n 0.75 = b, > > length > > >>> > normalization parameter\n 4.0 = dl, length of field\n 8.384666 = > > avgdl, > > >>> > average length of field\n", "product: > > >>> > https://istore.lt/iphone-xr-64gb-coral.html":"\n3.9714882 = > > >>> > weight(title:\"iphon xr 64gb\" in 29) [SchemaSimilarity], result > > of:\n > > >>> > 3.9714882 = score(freq=1.0), product of:\n 6.8681135 = idf, sum > of:\n > > >>> > 1.1837479 = idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) > > >>> from:\n 459 > > >>> > = n, number of documents containing term\n 1500 = N, total number > of > > >>> > documents with field\n 3.3156862 = idf, computed as log(1 + (N - n > + > > >>> 0.5) / > > >>> > (n + 0.5)) from:\n 54 = n, number of documents containing term\n > 1500 > > >>> = N, > > >>> > total number of documents with field\n 2.3686793 = idf, computed as > > >>> log(1 + > > >>> > (N - n + 0.5) / (n + 0.5)) from:\n 140 = n, number of documents > > >>> containing > > >>> > term\n 1500 = N, total number of documents with field\n 0.5782502 = > > tf, > > >>> > computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:\n > > 1.0 = > > >>> > phraseFreq=1.0\n 1.2 = k1, term saturation parameter\n 0.75 = b, > > length > > >>> > normalization parameter\n 4.0 = dl, length of field\n 8.384666 = > > avgdl, > > >>> > average length of field\n"}, "QParser":"LuceneQParser", > > >>> > "filter_queries":["{!join > > >>> > from=site_id to=site_id fromIndex=stores > > score=max}{!func}geodist()"], > > >>> " > > >>> > parsed_filter_queries":["OtherCoreJoinQuery(OtherCoreJoinQuery > > >>> > [fromIndex=stores, fromCoreOpenTime=3373417389901342 extends > > >>> > SameCoreJoinQuery > > >>> > > > >>> > > > >>> > > > [fromQuery=ShapeFieldCacheDistanceValueSource(org.apache.lucene.spatial.prefix.PointPrefixTreeFieldCacheProvider@2bfc8ad8 > > >>> > , > > >>> > Pt(x=25.224815300000046,y=54.69738679999999)), fromField=site_id, > > >>> > toField=site_id, scoreMode=Max]])"], } > > >>> > > > >>> > On Tue, Nov 12, 2019 at 12:48 PM Mikhail Khludnev <m...@apache.org > > > > >>> wrote: > > >>> > > > >>> > > Hello, > > >>> > > It seems like I breached the limit on unconscious replies in > > mailing > > >>> list > > >>> > > I'd rather start with this: > > >>> > > q={!join from=site_id to=site_id fromIndex=stores > > >>> > > score=max}+{!geofilt} > > >>> > > > > >>> > > > > >>> > > > >>> > > > {!func}geodist()&sfield=coordinates&pt=54.69738679999999,25.224815300000046&d=10 > > >>> > > > > >>> > > > > >>> > > On Mon, Nov 11, 2019 at 11:11 PM Mikhail Khludnev < > m...@apache.org > > > > > >>> > wrote: > > >>> > > > > >>> > > > Is it something like > > >>> https://issues.apache.org/jira/browse/SOLR-10673 > > >>> > ? > > >>> > > > > > >>> > > > On Mon, Nov 11, 2019 at 3:47 PM Vasily Ogar < > > ogar.vas...@gmail.com > > >>> > > > >>> > > wrote: > > >>> > > > > > >>> > > >> it's show nothing because I got an error > > >>> > > >> "metadata":[ > > "error-class","org.apache.solr.common.SolrException", > > >>> > > >> "root-error-class","org.apache.solr.search.SyntaxError"], > > >>> > > >> "msg":"org.apache.solr.search.SyntaxError: > > >>> > > >> geodist - not enough parameters:[]", > > >>> > > >> > > >>> > > >> If I set parameters then I got another error > > >>> > > >> "metadata":[ > > "error-class","org.apache.solr.common.SolrException", > > >>> > > >> "root-error-class","org.apache.solr.common.SolrException"], > > >>> "msg":"A > > >>> > > >> ValueSource isn't directly available from this field. Instead > > try > > >>> a > > >>> > > query > > >>> > > >> using the distance as the score.", > > >>> > > >> > > >>> > > >> On Mon, Nov 11, 2019 at 1:36 PM Mikhail Khludnev < > > m...@apache.org > > >>> > > > >>> > > wrote: > > >>> > > >> > > >>> > > >> > Hello, Vasily. > > >>> > > >> > Why not? What have you got in debugQuery=true? > > >>> > > >> > > > >>> > > >> > On Mon, Nov 11, 2019 at 1:19 PM Vasily Ogar < > > >>> ogar.vas...@gmail.com> > > >>> > > >> wrote: > > >>> > > >> > > > >>> > > >> > > Hello, > > >>> > > >> > > Is it possible to sort by score in join by geodist()? For > > >>> > instance, > > >>> > > >> > > something like this > > >>> > > >> > > q={!join from=site_id to=site_id fromIndex=stores > score=max} > > >>> > > >> > > +{!func}gedist() +{!geofilt sfield=coordinates > > >>> > > >> > > pt=54.69738679999999,25.224815300000046 d=10} > > >>> > > >> > > sort=score desc > > >>> > > >> > > Thank you > > >>> > > >> > > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > -- > > >>> > > >> > Sincerely yours > > >>> > > >> > Mikhail Khludnev > > >>> > > >> > > > >>> > > >> > > >>> > > > > > >>> > > > > > >>> > > > -- > > >>> > > > Sincerely yours > > >>> > > > Mikhail Khludnev > > >>> > > > > > >>> > > > > >>> > > > > >>> > > -- > > >>> > > Sincerely yours > > >>> > > Mikhail Khludnev > > >>> > > > > >>> > > > >>> > > >>> > > >>> -- > > >>> Sincerely yours > > >>> Mikhail Khludnev > > >>> > > >> > > > > > -- > Sincerely yours > Mikhail Khludnev >