Thanks Erick for the response.
I tried to debug the query. Below is the response in the debug node

<str name="rawquerystring">Rahul - kumar</str><str name="querystring">Rahul
- kumar</str><str name="parsedquery">+text:Rahul -text:kumar</str><str
name="parsedquery_toString">+text:Rahul -text:kumar</str><lst
name="explain"/><str name="QParser">LuceneQParser</str><arr
name="filter_queries"><str>Rahul - kumar</str></arr><arr
name="parsed_filter_queries"><str>+text:rahul -text:kumar</str></arr>


Does it mean the query parser has parsed it to tokens "Rahul -" and "kumar"?
Even if this was the case solr should be able to retrieve the documents
because I have indexed all the documents based on n-grams as well.

Thanks,
Prathik


On Tue, Sep 10, 2013 at 7:09 PM, Erick Erickson <erickerick...@gmail.com>wrote:

> Try adding &debug=query to the url. What I think you'll find is that
> you're running into
> a common issue, the difference between query parsing and analysis.
>
> when you submit anything with whitespace in it, the query parser will
> break it up
> _before_ it gets to the analysis part, you should see something in the
> debug
> portion of the query like
> field:rahul field:kumar and possibly even field:-
>
> These are searched as separate tokens. By specifying KeywordTokenizer, at
> index time you'll have exactly one token, rahul-kumar in the index which
> will not
> match any of the separated tokens
>
> Try escaping the spaces with backslash. You could also try quoting the
> input although
> that has some phrase implications.
>
> Do you really want this search to fail on just searching "rahul" though?
> Perhaps
> keywordTokenizer isn't best here, it depends upon your use-case...
>
> Best,
> Erick
>
>
> On Tue, Sep 10, 2013 at 8:10 AM, Prathik Puthran <
> prathik.puthra...@gmail.com> wrote:
>
>> Hi,
>>
>> I am facing the below issue where in Solr is not retrieving the indexed
>> word for some cases.
>>
>> This happens whenever the indexed word has string " - " (quotes for
>> clarity) as substring i.e word prefix followed by a space which is followed
>> by '-' again followed by a space and followed by the rest of the word
>> suffix.
>> When I search with search query being the exact string Solr returns no
>> results.
>>
>> Example:
>> Indexed word --> "Rahul - kumar"  (quotes for clarity)
>> If I search with the search query as below Solr gives no results
>> Search query --> "Rahul - kumar"  (quotes for clarity)
>>
>> However the below search query returns the results
>> Search query --> "Rahul kumar"
>>
>> Can you please let me know what I am doing wrong here and what should I
>> do to ensure the first query i.e. "Rahul - kumar" returns the documents
>> indexed using it.
>>
>> Below are the analyzers I am using:
>> Index time analyzer components:
>> 1) <charFilter class="solr.PatternReplaceCharFilterFactory"
>> pattern="([^A-Za-z0-9 ])" replacement=""/>
>>  2) <tokenizer class="solr.KeywordTokenizerFactory"/>
>>  3) <filter class="solr.LowerCaseFilterFactory"/>
>>  4) <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
>> preserveOriginal="1"/>
>>  5) <filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
>> maxGramSize="50" side="front"/>
>>  6) <filter class="solr.EdgeNGramFilterFactory" minGramSize="2"
>> maxGramSize="50" side="back"/>
>>
>> Query time analyzer components:
>>  1) <charFilter class="solr.PatternReplaceCharFilterFactory"
>> pattern="([^A-Za-z0-9 ])" replacement=""/>
>>  2) <tokenizer class="solr.KeywordTokenizerFactory"/>
>>  3) <filter class="solr.LowerCaseFilterFactory"/>
>>  4) <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"
>> preserveOriginal="1"/>
>>
>>
>> Can you please let me know how I can fix this?
>>
>> Thanks,
>> Prathik
>>
>>
>

Reply via email to