[ https://issues.apache.org/jira/browse/SOLR-11244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16133155#comment-16133155 ]
Cao Manh Dat commented on SOLR-11244: ------------------------------------- Hi [~ysee...@gmail.com], SOLR-4351 seems have the same approach with my first attempt for this issue, but as you may know, this require remarkable change in current QParser classes. {quote} One reason I was thinking of changing QParsers to act on Object graphs instead of Strings is because local params can't represent everything that JSON can {quote} In fact, after the first attempt, I think local params are powerful enough for represent everything that query DSL need. It support nested queries and parameters for each queries, that's all I need. For example {code} curl -XGET http://localhost:8983/solr/query -d ' { "query": { "bool": { "must": [ "title:solr", { "lucene" : {"df": "content", query : "lucene solr" } } ], "must_not": "{!frange u=3.0}ranking" } } } {code} Can be rewritten as {code} {!bool must='title:solr' must='{!lucene df=content v=lucene solr }' must_not='{!frange u=3.0}ranking'} {code} > Query DSL for Solr > ------------------ > > Key: SOLR-11244 > URL: https://issues.apache.org/jira/browse/SOLR-11244 > Project: Solr > Issue Type: Improvement > Security Level: Public(Default Security Level. Issues are Public) > Reporter: Cao Manh Dat > Assignee: Cao Manh Dat > Attachments: SOLR-11244.patch, Solr Query DSL - examples.html > > > It will be great if Solr has a powerful query DSL. This ticket is an > extension of [http://yonik.com/solr-json-request-api/]. > Here are several examples of Query DSL > {code} > curl -XGET http://localhost:8983/solr/query -d ' > { > "query" : { > "lucene" : { > "df" : "content", > "query" : "solr lucene" > } > } > } > {code} > the above example can be rewritten as (because lucene is the default qparser) > {code} > curl -XGET http://localhost:8983/solr/query -d ' > { > "query" : "content:(solr lucene)" > } > {code} > more complex example: > {code} > curl -XGET http://localhost:8983/solr/query -d ' > { > "query" : { > "boost" : { > "query" : { > "lucene" : { > "q.op" : "AND", > "df" : "cat_s", > "query" : "A" > } > } > "b" : "log(popularity)" > } > } > } > {code} > I call it Json Query Object (JQO) and It defined as : > - It can be a valid query string for Lucene query parser, for example : > "title:solr" > - It can be a valid local parameters string, for example : "{!dismax > qf=myfield}solr rocks" > - It can be a json object with structure like this > {code} > { > "query-parser-name" : { > "param1" : "value1", > "param2" : "value2", > "query" : <JQO>, > "another-param" : <JQO> > } > } > {code} > Therefore the above dismax query can be rewritten as ( be noticed that the > query argument in local parameters, is put as value of {{query}} field ) > {code} > { > "dismax" : { > "qf" : "myfield" > "query" : "solr rocks" > } > } > {code} > I will attach an HTML, contain more examples of Query DSL. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org