Hello, I'm new to Solr and to this user group. Any help with this problem would be greatly appreciated.
I'm trying to get partial keyword search results working. This seems like a fairly common problem, I've found numerous google results offering solutions for instance https://stackoverflow.com/questions/28753671/how-to-configure-solr-to-do-partial-word-matching but when I attempt to implement them I'm not receiving the desired results. I'm running solr 8.5.2 in standalone mode, manually editing the configs. I have configured the title field as <field name="title" type="edge_ngram_test_5" indexed="true" stored="true" multiValued="false"/> I have also tried it with this parameter omitTermFreqAndPositions="true" The field type definition is: <fieldType name="edge_ngram_test_5" class="solr.TextField" omitNorms="false" > <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="35" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldType> I'm using edismax and searching on title. http://localhost:8983/solr/events/select?defType=edismax&df=title&fl=title&q=educatio when using edge_ngram_test_5 edu correctly finds 4 results educa finds 0 educat finds 0 educati finds 0 educatio finds 0 education correctly finds 4. Steps taken between changes to the schema. bin/solr restart reimport data core admin > reload core In admin, I see the correct value, Typeedge_ngram_test_5 when I check in schema. In admin , when I check in analysis and search on text analyse [image: image.png] it appears to be breaking the word down into letters as I would guess is the correct step. These are the query results: [image: image.png] it looks like it is applying the correct filter names and the search term isn't being altered. I don't understand enough to be able to determine why the query can't find the search result when it appears to have been indexed. Any advice is very welcome as I've spent hours trying to get this working. I've also tried with: <fieldType name="edge_n2_kw_text" class="solr.TextField" omitNorms="true" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="25" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="text_edgengram_prod" class="solr.TextField" positionIncrementGap="100" > <analyzer type="index" > <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words= "stopwords.txt" /> <filter class="solr.PorterStemFilterFactory" /> <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="30"/> <!-- RDH - removed side="front"--> </analyzer> <analyzer type="query" > <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words= "stopwords.txt" /> <filter class="solr.PorterStemFilterFactory" /> <filter class="solr.RemoveDuplicatesTokenFilterFactory" /> </analyzer> </fieldType> <fieldType name="edge_ngram_test_4" class="solr.TextField" positionIncrementGap="100" > <analyzer type="index" > <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.SnowballPorterFilterFactory" language="English" /> <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" /> </analyzer> <analyzer type="query" > <tokenizer class="solr.KeywordTokenizerFactory"/> </analyzer> </fieldType> Thanks in advance for any insights offered. Kind regards, Phil.