From the Solr ref guide: you forgot the flatten graph filter at the end - this is needed for any graph filter you use : <filter class="solr.FlattenGraphFilterFactory"/> <!-- required on index analyzers after graph filters -->
> Am 09.03.2021 um 22:21 schrieb Shaun Campbell <campbell.sh...@gmail.com>: > > Hi Susmit > > That didn't seem to work. Don't know if I was doing something wrong. I > ended up writing a regex to split the incoming string into strings of > numbers and letters and build up the query manually. It's all working now. > > Thanks > Shaun > >> On Tue, 9 Mar 2021 at 16:50, Susmit <shukla.sus...@gmail.com> wrote: >> >> q.op = AND could be useful. the parts broken down by WDgff joined by ‘AND’ >> >> Sent from my iPhone >> >>> On Mar 9, 2021, at 3:07 AM, Shaun Campbell <campbell.sh...@gmail.com> >> wrote: >>> >>> Hi >>> >>> I'm trying to produce an autosuggestion field for project ids using >>> ngrams and WordDelimiterGraphFilterFactory to split on word number >>> boundaries. >>> >>> The ids have various formats ranging from nihr123456, 12/34/567, >>> DRF-2018-11-ST2-062. >>> >>> What I'm trying to do is allow the user to enter the number parts or the >>> alphabetical characters, or both and match all. The basic autosuggestion >> is >>> working but I have an issue where the query is matching some but not all >> of >>> the component parts. For example: >>> >>> I enter DRF-2018-11 and it matches: >>> >>> DRF-2018-11-ST2-062 >>> PB-PG-0909-20188 >>> CS-2018-18-ST2-005 >>> >>> >>> The first one is correct because it matches the DRF, the 2018 and the 11. >>> The second and third ones I don't want because there's no DRF, or 11 in >> the >>> ids. Is there any way to get around this problem in Solr configuration, >> or >>> do I have to split the id manually in code and construct a query where >> the >>> id is DRF AND id is 2018 AND id is 11? >>> >>> Here is my field type configuration: >>> >>> <fieldType name="ngram_award_id" class="solr.TextField" >>> positionIncrementGap="100" autoGeneratePhraseQueries="true"> >>> <analyzer type="index"> >>> >>> <tokenizer class="solr.StandardTokenizerFactory"/> >>> <filter class="solr.WordDelimiterGraphFilterFactory" >> generateWordParts="1" >>> generateNumberParts="1" catenateWords="0" catenateNumbers="0" >>> catenateAll="0" splitOnCaseChange="0" splitOnNumerics="1"/> >>> <filter class="solr.LowerCaseFilterFactory"/> >>> <filter class="solr.FlattenGraphFilterFactory" /> >>> <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" >>> maxGramSize="7"/> >>> >>> </analyzer> >>> <analyzer type="query"> >>> >>> <tokenizer class="solr.StandardTokenizerFactory"/> >>> <filter class="solr.WordDelimiterGraphFilterFactory" >> generateWordParts="1" >>> generateNumberParts="1" catenateWords="0" catenateNumbers="0" >>> catenateAll="0" splitOnCaseChange="0" splitOnNumerics="1"/> >>> <filter class="solr.LowerCaseFilterFactory"/> >>> >>> </analyzer> >>> </fieldType> >>> >>> Thanks >>> Shaun >>