lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Otis Gospodnetic <otis_gospodne...@yahoo.com>
Subject Re: Is there a way to query for this value?
Date Wed, 11 Feb 2009 04:19:42 GMT
Hi Ian,

I'll assume this actually did get indexed as a single token, so there is no problem there.
As for query string escaping, perhaps this method from Lucene's QueryParser will help:

  /**
   * Returns a String where those characters that QueryParser
   * expects to be escaped are escaped by a preceding <code>\</code>.
   */
  public static String escape(String s) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < s.length(); i++) {
      char c = s.charAt(i);
      // These characters are part of the query syntax and must be escaped
      if (c == '\\' || c == '+' || c == '-' || c == '!' || c == '(' || c == ')' || c == ':'
        || c == '^' || c == '[' || c == ']' || c == '\"' || c == '{' || c == '}' || c == '~'
        || c == '*' || c == '?' || c == '|' || c == '&') {
        sb.append('\\');
      }
      sb.append(c);
    }
    return sb.toString();
  }

Otis
--
Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch




________________________________
From: Ian Connor <ian.connor@gmail.com>
To: solr <solr-user@lucene.apache.org>
Sent: Tuesday, February 10, 2009 9:28:11 PM
Subject: Is there a way to query for this value?

I have tried to escape the characters as best I can, but cannot seem to find
one that works.

The value is:

10.1002/(SICI)1096-9136(199604)13:4&lt;390::AID-DIA121&gt;3.0.CO;2-4

It is a doi (see http://doi.org), so is a valid value to search on. However,
when I query this through ruby or even the admin interface, the parser does
not like it and returns an error.

What is the way to escape this? Is there such code for ruby?
-- 
Regards,

Ian Connor

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message