it should be something like q": "{!parent which=$parent_filter scoreMode=Max}+{!lucene v=$child_filter} +{!func v=$sort_func}", "parent_filter": "content_type:parent" "child_filter": "content_type:child" "indent": "true" "fl": "*,[child parentFilter=$parent_filter childFilter=$child_filter]" "sort_func": "analyzeText(text)" "sort": "score desc"
respond with debugQuery=on response on a problem On Tue, Jun 9, 2015 at 2:32 PM, DorZion <dorz...@gmail.com> wrote: > Thanks for your reply. > > I couldn't make it work. Everything went fine when I applied the patch and > compiled Solr, but I couldn't use the FunctionQuery with it. > > My FunctionQuery accesses the field "text" in the document, however the > parent doesn't have that field, so the plugin raises an exception. When I > suppress the exception and return the minimum value instead, nothing > happens. > > *Example of my query:* > "q": "*:*", > "parent_filter": "content_type:parent" > "child_filter": "content_type:child" > "indent": "true" > "fl": "*,[child parentFilter=$parent_filter childFilter=$child_filter]" > "fq": "{!parent which=$parent_filter v=$child_filter scoreMode=Max}" > "sort": "analyzeText(text) desc" > > *Another example for what I'm doing in the FunctionQuery plugin (This isn't > the original code):* > public FunctionValues getValues(Map map, AtomicReaderContext > atomicReaderContext) throws IOException { > > final FunctionValues values = > mValueSource.getValues(map,atomicReaderContext); > > return new FunctionValues() { > @Override > public float floatVal(int i) { > String value = values.strVal(i); > > if(value == null || value.isEmpty()) { > return Float.NaN; > } > > return value.length(); > ... > ... > ... > Other functions that use the and returns the floatVal value > > > Very grateful for your help, > > Dor > > > > Mikhail Khludnev wrote > > pickup the patch https://issues.apache.org/jira/browse/SOLR-5882 and/or > > chase committers. > > > > On Fri, Jun 5, 2015 at 10:35 AM, DorZion < > > > Dorzion@ > > > > wrote: > > > >> Hey, > >> > >> I'm using Solr 5.0.0 and I'm trying to sort documents with > >> FunctionQueries. > >> The problem is that I'm trying to sort those documents with their child > >> documents elements. > >> > >> Here is an example: > >> I have three documents, one is parent, the others are child documents > >> (_childDocuments_). > >> > >> { > >> "id": "ArticleGuid", > >> "title" : "Sorting Child Documents", > >> "content_type": "article", > >> "_childDocuments_": [ > >> { > >> "id": "CommentGuid", > >> "content_type": "comment", > >> "text": "CommentText" > >> }, > >> { > >> "id": "CommentGuid2", > >> "content_type": "comment", > >> "text": "CommentText" > >> } > >> ] > >> } > >> * > >> * This is just an example, the schema and the data aren't real.* > >> > >> I want to analyze & run an algorithm on the comments text, then sort the > >> parent documents by it - *This would work with FunctionQuery, if I had > >> one > >> comment for each article and didn't use child documents*. > >> I tried to use the LeafReadContext to get the children, but with no > luck. > >> > >> Is there any way to reach the children through FunctionQuery, or even > use > >> something else to do what I want? > >> > >> > >> Thanks in advance, > >> > >> Dor > >> > >> > >> > >> -- > >> View this message in context: > >> > http://lucene.472066.n3.nabble.com/Sorting-documents-by-nested-child-docs-with-FunctionQueries-tp4209940.html > >> Sent from the Solr - User mailing list archive at Nabble.com. > >> > > > > > > > > -- > > Sincerely yours > > Mikhail Khludnev > > Principal Engineer, > > Grid Dynamics > > > > <http://www.griddynamics.com> > > < > > > mkhludnev@ > > > > > > > > > > -- > View this message in context: > http://lucene.472066.n3.nabble.com/Sorting-documents-by-nested-child-docs-with-FunctionQueries-tp4209940p4210646.html > Sent from the Solr - User mailing list archive at Nabble.com. > -- Sincerely yours Mikhail Khludnev Principal Engineer, Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>