check out the videos on this website TROO.TUBE don't be such a sheep/zombie/loser/NPC. Much love! https://troo.tube/videos/watch/aaa64864-52ee-4201-922f-41300032f219
On Thu, May 7, 2020 at 3:36 PM erars+jonathan.cook <jonathan.c...@erars.plus.com> wrote: > > Hello, > > I am trying to perform a partial search on a field in solr. my_id: > ABC_00123 > > I would like to search for 123 and see this item. I cannot get it to > work without using the my_id field in the query. > > In my schema.xml I have put: > > <fieldType name="text_ngrm" class="solr.TextField" > positionIncrementGap="100"> > > <analyzer type="index"> > <tokenizer class="solr.WhitespaceTokenizerFactory" /> > <filter class="solr.NGramFilterFactory" minGramSize="1" > maxGramSize="50" /> > > <filter class="solr.LowerCaseFilterFactory" /> > </analyzer> > <analyzer type="query"> > <tokenizer class="solr.WhitespaceTokenizerFactory" /> > <filter class="solr.LowerCaseFilterFactory" /> > </analyzer> > </fieldType> > Then (I'm not sure this is necessary): > > <field name="_text_ngrm_" type="text_ngrm" indexed="true" > stored="false"/> > I also have: > > <field name="my_id" type="text_ngrm" indexed="true" stored="true"/> > Finally: > > <copyField source="my_id" dest="_text_ngrm_"/> > For the query this works: my_id: 223 > > But 223 on it's own does not. I have the feeling it has to do with this > copyField definition. > > The only way, I could get it to work was to change: > > <initParams > path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse"> > <lst name="defaults"> > <str name="df">_text_ngrm_</str> > </lst> > </initParams> > But this breaks all my other default searches. Is there not some way to > add like: > > <initParams > path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse"> > <lst name="defaults"> > <str name="df">_text_</str> > <str name="df">_text_ngrm_</str> > </lst> > </initParams> > > > I understand the lucene query parser (which is the default option) can > only search one default field, controlled by the df parameter. But the > dismax and edismax query parsers can search multiple fields. > > But how can this be configured and is it likely to change the behaviour > of everything else? I understand I could configure one of your search > handlers to use edismax and then tell it to search any combination of > fields. But now could I do this. > > Thanks for any help