[ 
https://issues.apache.org/jira/browse/SOLR-11244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16144698#comment-16144698
 ] 

Uwe Schindler commented on SOLR-11244:
--------------------------------------

bq. The general downside to using local params as the convergence layer 
(besides double-parsing) is the loss of type info (e.g. was a parameter an 
integer, string, or map).

And error handling if unknown params are given. Currently everything is arsed 
to local params, but the later query parsers cannot easily bail out on invalid 
key names in the JSON. I know we could do the same like with analyzer factories 
(removing the entries from the local params map), but thats not eay to 
implement in the current way. With having a JSON parser for every query parser 
this is easier.

Nevertheless, I like the approach, although it double parses! Are we sure that 
we have no escaping problems anywhere with special characters?

> 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-11244.patch, 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

Reply via email to