assuming the currency is always the same (euro) I would just split (using a custom analyzer) the value in
euro and
eurocent: the Analyzer should take care of splitting the value according to whatever type of separator is used.
You can use appropriate padding (remember the values are going to be sorted as a String, so you may want to converto something like 1,09 to "09" cents and not "9" cents.
This is having an additional benefit of restricting the field for range queries or filters: quite likely in case of prices as most of the time users are not interested in specifying also the cents in the ranges.
The internal naming of your fields shouldn't be affected by your i18 settings; think it the same way of a DB column: you wouldn't localize the column name in a table right?
you user interface will be localized, but internally you'll have to refer to the appropriate fields.
Quote:
Dutch users will search for something like prijs:19,99
This is assuming you give the users the flexibility yo write the Lucene query directly; in this cases you alsmost always want to "tune" the QueryParser, so you should remap the "prijs" to your field.
Also a price is usually defined as ranges, a good candidate to look into Search filters: using a combobox or sliders could be more practical, as it's hard to imagine your users would be so smart to type this kind of query.