As Erick said, you need to be looking into Query Parsers. There are
many, depending on what search you are actually allowing your users to
do. You probably know lucene/default, dismax and edismax, but there
are many more: http://lucene.apache.org/solr/guide/7_4/other-parsers.html

For example, you could allow a lot of flexibility but choose specific
operators allowed with Simple Query Parser:
http://lucene.apache.org/solr/guide/7_4/other-parsers.html#simple-query-parser

Or, in the other extreme, you could allow to search against a single
field only with Field Query Parser:
http://lucene.apache.org/solr/guide/7_4/other-parsers.html#field-query-parser

You may also benefit from dereferencing to ensure the full query is
not overridden:
http://lucene.apache.org/solr/guide/7_4/local-parameters-in-queries.html#parameter-dereferencing
, possibly combined with invariants for the handler definition:
http://lucene.apache.org/solr/guide/7_4/requesthandlers-and-searchcomponents-in-solrconfig.html#searchhandlers

Regards,
   Alex.

On 4 September 2018 at 11:11, Erick Erickson <erickerick...@gmail.com> wrote:
> This is a query _parsing_ issue, way before a tokenizer ever gets to
> it. The problem of course is that AND is an operator in the query
> language, so your problem is how to distinguish it from the value of a
> field.
>
> You can always quote the input for id, as in id:"AND" which you could
> do for everything you put in that field. You'll have he same problem
> with OR and NOT BTW.
>
> Best,
> Erick
> On Tue, Sep 4, 2018 at 3:10 AM girish.vignesh <girish.vign...@gmail.com> 
> wrote:
>>
>> One of the ID attribute which we are using to query is AND so our looks like
>>
>> http://localhost:8983/solr//select?fq=id:AND&wt=json
>>
>> This throws below mentioned exception
>>
>> 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 'id:AND': Encountered "
>> "AND "" at line 1
>>
>> I can escape AND by using below mentioned queries
>> http://localhost:8983/solr//select?fq=entityId:\AND&wt=json
>> http://localhost:8983/solr//select?fq=entityId:%22AND%22&wt=json
>>
>> Question: I do not want to handle this while making a query. Is there any
>> other way to handle this at Solr config level using tokenizer or some other
>> way. This way I do not have to handle this at multiple places.
>>
>>
>>
>> --
>> Sent from: http://lucene.472066.n3.nabble.com/Solr-User-f472068.html

Reply via email to