ankur bansal
ankur bansal

Reputation: 119

No response with query string containing whitespace in SOLR autocomplete

I am trying to use SOLR autocomplete feature, Basically once a user types 3 characters, I want to show response with every character typed. SOLR version is 6.5.1. Below is the configuration I am using.

<fieldType name="searchFieldType" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.KeywordTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
                <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" />
            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.KeywordTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType> 

I have a sample index which is having field values as below.

"ta", "taj", "tajbacd", "tajabcd", "taj cbad","taj abcd", "taj bcad","taj abcd cbad", "taj abcd abcd","taj abcd bacd", "abcd taj","abcd ta", "random string"

When I am seraching for "taj", I am getting expected results But if I search for "taj ", or "taj ab", Solr is not returning any results. Can you guys help me here. I tried to use Analysis, which is showing ngram is found, below is the screenshot of the same.

enter image description here

Upvotes: 1

Views: 291

Answers (2)

Oyeme
Oyeme

Reputation: 11225

Well you can just easily use wildcard/partial match in this case

q={!complexphrase inOrder=true}YourField:"taj ab*"

Upvotes: 0

Persimmonium
Persimmonium

Reputation: 15791

So, I read your question too fast...my bad.

Can you show us the requests you are using to veirfy this? Both the one working and the one not working.

By the way, one thing you can already fix, if you send only 3 chars or more, you can change your minGramSize="1" to minGramSize="3."

Upvotes: 1

Related Questions