Hi Guilherme By accident, I ended up querying the using the default handler (/select) > and it worked.
You've just found the culprit. Thanks for giving the material I requested. Your analysis chain is working as expected. I don't see any issue in either StopWordFilter or your boosts. I also use a boost of 50 when boosting contextual suggestions (boosting "gold iphone" on a page of iphone) but I take Walter's suggestion and would try to optimize my weights. I agree that this 50 thing was not researched much about by us as well (we never faced performance or relevance issues). See the major difference in both the handlers - edismax. I'm pretty sure that your problem lies in the parsing of queries (you can confirm that from parsedquery key in debug of both JSON responses). I hope you have provided the response with fl=*. Replace q with q.alt in your /search handler query and I think you should start getting responses. That's because q.alt uses standard parser. If you want to keep using edisMax, I suggest you to test the responses removing some combination of lst (qf, bf) and find what's restricting the documents to come up. I'm out of office today - would have certainly tried analyzing the field values of the document in /select request and compare it with qf/bq in solrconfig.xml /search. Do this for me and you'd certainly find something. On Thu, 7 Nov 2019 at 21:00, Walter Underwood <wun...@wunderwood.org> wrote: > I normally use a weight of 8 for the most important field, like title. > Other fields might get a 4 or 2. > > I add a “pf” field with the weights doubled, so that phrase matches have a > higher weight. > > The weight of 8 comes from experience at Infoseek and Inktomi, two early > web search engines. With different relevance algorithms and totally > different evaluation and tuning systems, they settled on weights of 8 and > 7.5 for HTML titles. With the the two radically different system getting > the same number, I decided that was a property of the documents, not of the > search engines. > > wunder > Walter Underwood > wun...@wunderwood.org > http://observer.wunderwood.org/ (my blog) > > On Nov 7, 2019, at 9:03 AM, Guilherme Viteri <gvit...@ebi.ac.uk> wrote: > > Hi Wunder, > > My indexer takes quite a few hours to be executed I am shortening it to > run faster, but I also need to make sure it gives what we are expecting. > This implementation's been there for >4y, and massively used. > > In your edismax handlers, weights of 20, 50, and 100 are extremely high. I > don’t think I’ve ever used a weight higher than 16 in a dozen years of > configuring Solr. > > I've inherited that implementation and I am really keen to adequate it, > what would you recommend ? > > Cheers > Guilherme > > On 7 Nov 2019, at 14:43, Walter Underwood <wun...@wunderwood.org> wrote: > > Thanks for posting the files. Looking at schema.xml, I see that you still > are using StopFilterFactory. The first advice we gave you was to remove > that. > > Remove StopFilterFactory everywhere and reindex. > > You will continue to have problems matching stopwords until you do that. > > In your edismax handlers, weights of 20, 50, and 100 are extremely high. I > don’t think I’ve ever used a weight higher than 16 in a dozen years of > configuring Solr. > > wunder > Walter Underwood > wun...@wunderwood.org > http://observer.wunderwood.org/ (my blog) > > On Nov 7, 2019, at 6:56 AM, Guilherme Viteri <gvit...@ebi.ac.uk> wrote: > > Hi Paras, everyone > > Thank you again for your inputs and suggestions. I sorry to hear you had > trouble with the attachments I will host it somewhere and share the links. > I don't tweak my index, I get the data from the graph database, create a > document as they are and save to solr. > > So, I am sending the new analysis screen querying the way you suggested. > Also the results with params and solr query url. > > During the process of querying what you asked I found something really > weird (at least for me). By accident, I ended up querying the using the > default handler (/select) and it worked. Then If I use the one I must use, > then sadly doesn't work. I am posting both results and I will also post the > handlers as well. > > Here is the link with all the files mentioned before > https://www.dropbox.com/sh/fymfm1q94zum1lx/AADwU1c9EUf2A4d7FtzSKR54a?dl=0 > <https://www.dropbox.com/sh/fymfm1q94zum1lx/AADwU1c9EUf2A4d7FtzSKR54a?dl=0 > > > If the link doesn't work www dot dropbox dot com slash sh slash > fymfm1q94zum1lx/AADwU1c9EUf2A4d7FtzSKR54a ? dl equals 0 > > Thanks > > On 7 Nov 2019, at 05:23, Paras Lehana <paras.leh...@indiamart.com> wrote: > > Hi Guilherme. > > I am sending they analysis result and the json result as requested. > > > Thanks for the effort. Luckily, I can see your attachments (low quality > though). > > From the analysis screen, the analysis is working as expected. One of the > reasons for query="lymphoid and *a* non-lymphoid cell" not matching > document containing "Lymphoid and a non-Lymphoid cell" I can initially > think of is: the stopword "a" is probably present in post-analysis either > of query or index. Did you tweak your index time analysis after indexing? > > Do two things: > > 1. Post the analysis screen for and index=*"Immunoregulatory > interactions between a Lymphoid and a non-Lymphoid cell"* and > "query=*"lymphoid > and a non-lymphoid cell"*. Try hosting the image and providing the link > here. > 2. Give the same JSON output as you have sent but this time with > *"echoParams=all"*. Also, post the exact Solr query url. > > > > On Wed, 6 Nov 2019 at 21:07, Erick Erickson <erickerick...@gmail.com> > wrote: > > I don’t see the attachments, maybe I deleted old e-mails or some such. The > Apache server is fairly aggressive about stripping attachments though, so > it’s also possible they didn’t make it through. > > On Nov 6, 2019, at 9:28 AM, Guilherme Viteri <gvit...@ebi.ac.uk> wrote: > > Thanks Erick. > > First, your index and analysis chains are considerably different, this > > can easily be a source of problems. In particular, using two different > tokenizers is a huge red flag. I _strongly_ recommend against this unless > you’re totally sure you understand the consequences. Additionally, your use > of the length filter is suspicious, especially since your problem statement > is about the addition of a single letter term and the min length allowed on > that filter is 2. That said, it’s reasonable to suppose that the ’a’ is > filtered out in both cases, but maybe you’ve found something odd about the > interactions. > > I will investigate the min length and post the results later. > > Second, I have no idea what this will do. Are the equal signs typos? > > Used by custom code? > > This the url in my application, not solr params. That's the query string. > > What does “species=“ do? That’s not Solr syntax, so it’s likely that > > all the params with an equal-sign are totally ignored unless it’s just a > typo. > > This is part of the application. Species will be used later on in solr > > to filter out the result. That's not solr. That my app params. > > > Third, the easiest way to see what’s happening under the covers is to > > add “&debug=true” to the query and look at the parsed query. Ignore all the > relevance calculations for the nonce, or specify “&debug=query” to skip > that part. > > The two json files i've sent, they are debugQuery=on and the explain tag > > is present. > > I will try the searching the way you mentioned. > > Thank for your inputs > > Guilherme > > On 6 Nov 2019, at 14:14, Erick Erickson <erickerick...@gmail.com> > > wrote: > > > Fwd to another server > > First, your index and analysis chains are considerably different, this > > can easily be a source of problems. In particular, using two different > tokenizers is a huge red flag. I _strongly_ recommend against this unless > you’re totally sure you understand the consequences. Additionally, your use > of the length filter is suspicious, especially since your problem statement > is about the addition of a single letter term and the min length allowed on > that filter is 2. That said, it’s reasonable to suppose that the ’a’ is > filtered out in both cases, but maybe you’ve found something odd about the > interactions. > > > Second, I have no idea what this will do. Are the equal signs typos? > > Used by custom code? > > > > > https://dev.reactome.org/content/query?q=lymphoid+and+a+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > > What does “species=“ do? That’s not Solr syntax, so it’s likely that > > all the params with an equal-sign are totally ignored unless it’s just a > typo. > > > Third, the easiest way to see what’s happening under the covers is to > > add “&debug=true” to the query and look at the parsed query. Ignore all the > relevance calculations for the nonce, or specify “&debug=query” to skip > that part. > > > 90% + of the time, the question “why didn’t this query do what I > > expect” is answered by looking at the “&debug=query” output and the > analysis page in the admin UI. NOTE: for the analysis page be sure to look > at _both_ the query and index output. Also, and very important about the > analysis page (and this is confusing) is that this _assumes_ that what you > put in the text boxes have made it through the query parser intact and is > analyzed by the field selected. Consider the search "q=field:word1 word2". > Now you type “word1 word2” into the analysis text box and it looks like > what you expect. That’s misleading because the query is _parsed_ as > "field:word1 default_search_field:word2”. This is where “&debug=query” > helps. > > > Best, > Erick > > On Nov 6, 2019, at 2:36 AM, Paras Lehana <paras.leh...@indiamart.com> > > wrote: > > > Hi Walter, > > The solr.StopFilter removes all tokens that are stopwords. Those words > > will > > not be in the index, so they can never match a query. > > > > I think the OP's concern is different results when adding a stopword. I > think he's using the filter factory correctly - the query chain > > includes > > the filter as well so it should remove "a" while querying. > > *@Guilherme*, please post results for both the query, the document in > result you are concerned about and post full result of analysis screen > > (for > > both query and index). > > On Tue, 5 Nov 2019 at 21:38, Walter Underwood <wun...@wunderwood.org> > > wrote: > > > No. > > The solr.StopFilter removes all tokens that are stopwords. Those words > will not be in the index, so they can never match a query. > > 1. Remove the lines with solr.StopFilter from every analysis chain in > schema.xml. > 2. Reload the collection, restart Solr, or whatever to read the new > > config. > > 3. Reindex all of the documents. > > When indexed with the new analysis chain, the stopwords will not be > removed and they will be searchable. > > wunder > Walter Underwood > wun...@wunderwood.org > http://observer.wunderwood.org/ (my blog) > > On Nov 5, 2019, at 8:56 AM, Guilherme Viteri <gvit...@ebi.ac.uk> > > wrote: > > > Ok. I am kind a lost now. > If I open up the console > analysis and perform it, that's the final > > result. > > <Screenshot 2019-11-05 at 14.54.16.png> > > Your suggestion is: get rid of the <filter stopword.txt> in the > > schema.xml and during index phase replaceAll("in stopwords.txt"," ") > > then > > add to solr. Is that correct ? > > > Thanks David > > On 5 Nov 2019, at 14:48, David Hastings < > > hastings.recurs...@gmail.com > > <mailto:hastings.recurs...@gmail.com>> wrote: > > > Fwd to another server > > no, > <filter class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt"/> > > is still using stopwords and should be removed, in my opinion of > > course, > > based on your use case may be different, but i generally axe any > > reference > > to them at all > > On Tue, Nov 5, 2019 at 9:47 AM Guilherme Viteri <gvit...@ebi.ac.uk > > <mailto:gvit...@ebi.ac.uk>> wrote: > > > Thanks. > Haven't I done this here ? > <fieldType name="text_field" class="solr.TextField" > positionIncrementGap="100" omitNorms="false" > > <analyzer type="index"> > <tokenizer class="solr.StandardTokenizerFactory"/> > <filter class="solr.ClassicFilterFactory"/> > <filter class="solr.LengthFilterFactory" min="2" > > max="20"/> > > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.StopFilterFactory" ignoreCase="true" > words="stopwords.txt"/> > </analyzer> > > > On 5 Nov 2019, at 14:15, David Hastings < > > hastings.recurs...@gmail.com > > <mailto:hastings.recurs...@gmail.com>> > > wrote: > > > Fwd to another server > > The first thing you should do is remove any reference to stop > > words > > and > > never use them, then re-index your data and try it again. > > On Tue, Nov 5, 2019 at 9:14 AM Guilherme Viteri < > > gvit...@ebi.ac.uk > > <mailto:gvit...@ebi.ac.uk>> > > wrote: > > > Hi, > > I am performing a search to match a name (text_field), however > > this > > term > > contains 'and' and 'a' and it doesn't return any records. If i > > remove > > 'a' > > then it works. > e.g > Search Term: lymphoid and a non-lymphoid cell > doesn't work: > > > > > https://dev.reactome.org/content/query?q=lymphoid+and+a+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > < > > > https://dev.reactome.org/content/query?q=lymphoid+and+a+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > > < > > > > > https://dev.reactome.org/content/query?q=lymphoid+and+a+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > > > Search term: lymphoid and non-lymphoid cell > works: > > > > > https://dev.reactome.org/content/query?q=lymphoid+and+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > < > > > > > https://dev.reactome.org/content/query?q=lymphoid+and+non-lymphoid+cell&species=Homo+sapiens&species=Entries+without+species&cluster=true > > > interested in the first result > > schema.xml > <field name="name" type="text_field" > indexed="true" stored="true" omitNorms="false" > > required="true" > > multiValued="false"/> > > <analyzer type="query"> > <tokenizer class="solr.PatternTokenizerFactory" > pattern="[^a-zA-Z0-9/._:]"/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="^[/._:]+" replacement=""/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="[/._:]+$" replacement=""/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="[_]" replacement=" "/> > <filter class="solr.LengthFilterFactory" min="2" > > max="20"/> > > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.StopFilterFactory" > > ignoreCase="true" > > words="stopwords.txt"/> > </analyzer> > > <fieldType name="text_field" class="solr.TextField" > positionIncrementGap="100" omitNorms="false" > > <analyzer type="index"> > <tokenizer class="solr.StandardTokenizerFactory"/> > <filter class="solr.ClassicFilterFactory"/> > <filter class="solr.LengthFilterFactory" min="2" > > max="20"/> > > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.StopFilterFactory" > > ignoreCase="true" > > words="stopwords.txt"/> > </analyzer> > <analyzer type="query"> > <tokenizer class="solr.PatternTokenizerFactory" > pattern="[^a-zA-Z0-9/._:]"/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="^[/._:]+" replacement=""/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="[/._:]+$" replacement=""/> > <filter class="solr.PatternReplaceFilterFactory" > pattern="[_]" replacement=" "/> > <filter class="solr.LengthFilterFactory" min="2" > > max="20"/> > > <filter class="solr.LowerCaseFilterFactory"/> > <filter class="solr.StopFilterFactory" > > ignoreCase="true" > > words="stopwords.txt"/> > </analyzer> > </fieldType> > > stopwords.txt > #Standard english stop words taken from Lucene's StopAnalyzer > a > b > c > .... > an > and > are > > Running SolR 6.6.2. > > Is there anything I could do to prevent this ? > > Thanks > Guilherme > > > > > > > > -- > -- > Regards, > > *Paras Lehana* [65871] > Development Engineer, Auto-Suggest, > IndiaMART Intermesh Ltd. > > 8th Floor, Tower A, Advant-Navis Business Park, Sector 142, > Noida, UP, IN - 201303 > > Mob.: +91-9560911996 > Work: 01203916600 | Extn: *8173* > > -- > IMPORTANT: > NEVER share your IndiaMART OTP/ Password with anyone. > > > > > > > -- > -- > Regards, > > *Paras Lehana* [65871] > Development Engineer, Auto-Suggest, > IndiaMART Intermesh Ltd. > > 8th Floor, Tower A, Advant-Navis Business Park, Sector 142, > Noida, UP, IN - 201303 > > Mob.: +91-9560911996 > Work: 01203916600 | Extn: *8173* > > -- > IMPORTANT: > NEVER share your IndiaMART OTP/ Password with anyone. > > > > > > -- -- Regards, *Paras Lehana* [65871] Development Engineer, Auto-Suggest, IndiaMART Intermesh Ltd. 8th Floor, Tower A, Advant-Navis Business Park, Sector 142, Noida, UP, IN - 201303 Mob.: +91-9560911996 Work: 01203916600 | Extn: *8173* -- IMPORTANT: NEVER share your IndiaMART OTP/ Password with anyone.