my bad, using term query parser works, thanks ahmet.
Gesendet: Mittwoch, 12. September 2012 um 19:40 Uhr
Von: sy...@web.de
An: solr-user@lucene.apache.org
Betreff: Aw: Re: Cannot parse :, using HTTP-URL as id
term query parser is your friend in this case. With this you don't need to
escape anything.
SolrQuery query = new SolrQuery();
query.setQuery({!term f=id}bar_http://bar.com/?doc=452;);
But how can I *store* a document with an URL as a field value ? E.g.
domain_http://www.domain.com/?p=12345;
The term query parser may be able to *retrieve* field values with an :,
but my current problem is that I can't store value with : with *Solrj*, the
Java library to communicate with Solr.
--- On Wed, 9/12/12, sy...@web.de sy...@web.de wrote:
From: sy...@web.de sy...@web.de
Subject: Cannot parse :, using HTTP-URL as id
To: solr-user@lucene.apache.org
Date: Wednesday, September 12, 2012, 7:40 PM
Hi,
I defined a field id in my schema.xml and use it as an
uniqueKey:
field name=id type=string indexed=true
stored=true required=true /
uniqueKeyid/uniqueKey
I want to store URLs with a prefix in this field to be sure
that every id is unique among websites. For example:
domain_http://www.domain.com/?p=12345
foo_http://foo.com
bar_http://bar.com/?doc=452
I wrote a Java app, which uses Solrj to communicate with a
running Solr instance. Solr (or Solrj, not sure about this)
complains that it can't parse ::
Exception in thread main
org.apache.solr.common.SolrException:
org.apache.lucene.queryparser.classic.ParseException:
Cannot parse 'id:domain_http://www.domain.com/?p=12345': Encountered
: :
at line 1, column 14.
How should I handle characters like : to solve this
problem?
I already tried to escape the : like this:
String id = domain_http://www.domain.com/?p=12345.replaceAll(:,
:));
...
document.addField(id, id);
...
But then Solr (or Solrj) complains again:
Exception in thread main
org.apache.solr.common.SolrException:
org.apache.lucene.queryparser.classic.ParseException:
Cannot parse
'id:domain_http\://www.domain.com/?p=12345': Lexical error
at line 1, column 42. Encountered: EOF after :
/?p=12345
I use 4 backslashes () for double-escape. The first
escape is for Java itself, the second is for Solr to handle
it (I guess).
So what is the correct or usual way to deal with special
characters like : in Solr (or Solrj)? I don't know if Solr
or Solrj is the problem, but I guess it is Solrj?