I thought the intention to convert country as fq is to hit the filter cache for performance than boosting results.
> On Dec 27, 2013, at 10:31 PM, Josh Lincoln <josh.linc...@gmail.com> wrote: > > what if you add your country field to qf with a strong boost? the search > experience would be slightly different than if you filter on country, but > maybe still good enough for your users and certainly simpler to implement > and maintain. You'd likely only want exact matches. Assuming you are using > edismax and a stopword file for your main query fields, you'll run into an > issue if you just index your country field as a string and there's a > stopword anywhere in your query...see SOLR-3085. To avoid this, yet still > boost on country only when there's an exact match, you could index the > country field as text using KeywordTokenizerFactory and the same stopword > file as your other fields. > > Regardless of the approach you take, unless there's only a small list of > countries you care about, multi-word countries might be too big an issue to > ignore, especially when the name contains common words (e.g. United States, > South Korea, New Zealand). This may be a good candidate for named entity > recognition on the query, possibly leveraging openNLP. I once saw a > presentation on how linkedin uses nlp on the query to detect the types of > entities the user is looking for. Seems similar to what you're trying to > accomplish. Of course, if countries are the only thing you're interested in > then you may be able to get away with client code for simple substring > matching using a static list of countries. > >> On Dec 23, 2013 3:08 PM, "Joel Bernstein" <joels...@gmail.com> wrote: >> >> I would suggest handling this in the client. You could write custom Solr >> code also but it would be more complicated because you'd be working with >> Solr's API's. >> >> Joel Bernstein >> Search Engineer at Heliosearch >> >> >>> On Mon, Dec 23, 2013 at 2:36 PM, jmlucjav <jmluc...@gmail.com> wrote: >>> >>> Hi, >>> >>> I have this scenario that I think is no unusual: solr will get a user >>> entered query string like 'apple pear france'. >>> >>> I need to do this: if any of the terms is a country, then change the >> query >>> params to move that term to a fq, i.e: >>> q=apple pear france >>> to >>> q=apple pear&fq=country:france >>> >>> What do you guys would be the best way to implement this? >>> - custom searchcomponent or queryparser >>> - servlet in same jetty as solr >>> - client code >>> >>> To simplify, consider countries are just a single term. >>> >>> Any pointer to an example to base this on would be great. thanks >>