Hi,

When I do the Not Contains query, I get the following error when I do it in
the following way:

*Not working*
1) When put the "-" sign before the {!parent which}

http://localhost:8983/solr/test/select?q=contentType_s:Header%20AND%20date_dt:[2016-01-01T00:00:00Z%20TO%202017-01-01T00:00:00Z]&fq=-{!parent%20which=%22contentType_s:Header%22}matNo_s:(*88060*%20*88061*)&json.facet={client_s:{type:terms,field:client_s,%20limit:200,%20offset:0,%20mincount:1}}&facet.threads=-1&fl=null&rows=0

This is the error message that I get:
{
  "responseHeader":{
    "zkConnected":true,
    "status":400,
    "QTime":1},
  "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
'matNo_s:(*88060*': Encountered \"<EOF>\" at line 1, column 28.\r\nWas
expecting one of:\r\n    <AND> ...\r\n    <OR> ...\r\n    <NOT> ...\r\n
 \"+\" ...\r\n    \"-\" ...\r\n    <BAREOPER> ...\r\n    \"(\" ...\r\n
 \")\" ...\r\n    \"*\" ...\r\n    \"^\" ...\r\n    <QUOTED> ...\r\n
 <TERM> ...\r\n    <FUZZY_SLOP> ...\r\n    <PREFIXTERM> ...\r\n
 <WILDTERM> ...\r\n    <REGEXPTERM> ...\r\n    \"[\" ...\r\n    \"{\"
...\r\n    <LPARAMS> ...\r\n    \"filter(\" ...\r\n    <NUMBER> ...\r\n
 ",
    "code":400}}
*Not working*
2) When I put the "-" sign just before the matNo

http://localhost:8983/solr/test/select?q=contentType_s:Header%20AND%20date_dt:[2016-01-01T00:00:00Z%20TO%202017-01-01T00:00:00Z]&fq={!parent%20which=%22contentType_s:Header%22}-matNo_s:(*88060*%20*88061*)&json.facet={client_s:{type:terms,field:client_s,%20limit:200,%20offset:0,%20mincount:1}}&facet.threads=-1&fl=null&rows=0

There is no result returned for this:
{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":0},
  "response":{"numFound":0,"start":0,"docs":[]
  },
  "facets":{
    "count":0}}

*Working*
I need to include the field parentId_s:* to match all query first

http://localhost:8983/solr/test/select?q=contentType_s:Header%20AND%20date_dt:[2016-01-01T00:00:00Z%20TO%202017-01-01T00:00:00Z]&fq={!parent%20which=%22contentType_s:Header%22}parentId_s:*
AND -matNo_s:(88060*
88061*)&json.facet={client_s:{type:terms,field:client_s,%20limit:200,%20offset:0,%20mincount:1}}&facet.threads=-1&fl=null&rows=0

However, this is an inefficient way to get the Not Contain. By right, we
should be able to get the results from the first two examples. Can this be
consider a bug?

I'm using Solr 6.4.2.


Regards,
Edwin

Reply via email to