Le 28 nov. 2012 à 16:52, Eduard Moraru a écrit :

> "title:something AND doccontent:somethingElse AND lang:en" becomes
> "(doccontent_en:something OR doccontent_fr:something OR ...) AND
> (title_en:something OR title_fr:something OR ...) AND lang:en"  (based on
> the currently supported -- or just indexed -- languages)

Just a methodological note: we should not be programming queries by combining 
strings but by combining Solr query objects which are rich, flexible, and easy 
to manipulate.
However, speaking this way in mails is by far the best way!

The mechanism you describe above is exactly how I would do it: my query 
expansion start with a q parameter and a context.
Based on the context a weighted list of languages is extracted 
(context.language, then browser languages).
I give the q parameter to the query-parser, with a whitespace analyzer. I 
obtain generally a boolean-query (otherwise I wrap it). Then I recursively go 
through the components of the boolean-queries.

Each TermQuery of the default field is expanded into a disjunction of the 
TermQuery in each of the language (with their weight and with the right 
analyzer).
Same for each phrasequery, wildcardquery, and fuzzyquery (not sure).

Finding the analyzer defined in the Solr schema is not too hard.

I can share code if you wish.

Paul
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to