Hi Yonik, Yes, they are the target from copyFields in the schema.xml. This *_target fields are suposed to be used in some specific searchable (thus, tokenized) fields that in the future are candidates to be faceted to return some stats. For example, imagine that you have a field storing a directory path and you want to search by. Also, you may want to facet by the whole directory path value (not just their terms). Thats why I' m storing both field values: searchable and tokenized one, string and 'facet candidate' one.
What I do not understand is that both i18n* and *_target are dynamic, indexed and stored values. The only difference is that *_target one is multivalued. Does it have some sense? Regards - Luis Cappa 2015-05-14 16:42 GMT+02:00 Yonik Seeley <ysee...@gmail.com>: > Are the _facet fields the target of a copyField in the schema? > Realtime get either gets the values from the transaction log (and if > you didn't send it the values, they won't be there) or gets them from > the index to try and reconstruct what was sent in. > > It's generally not recommended to have copyField targets "stored", or > have a mix of explicitly set values and copyField values in the same > field. > > -Yonik > > On Thu, May 14, 2015 at 7:17 AM, Luis Cappa Banda <luisca...@gmail.com> > wrote: > > Hi there, > > > > I have the following dynamicFields definition in my schema.xml: > > > > > > <!-- I18n DynamicFields --> > > > > <dynamicField name="i18n*" type="string" indexed="true" stored="true" /> > <!-- > > DynamicFields used typically for faceting issues by copying values from > > other existing fields--> <dynamicField name="*_facet" type="string" > indexed= > > "true" stored="true" multiValued="true" /> > > > > > > I' ve seen that when fetching documents with /select?q=id:whateverId, the > > results returned include both i18n* and *_facet fields filled. However, > > when using real-time request handler (/get?ids:whateverIds) the result > > fetched include only i18n* dynamic fields, but *_facet ones are not > > included. > > > > I have the impression during /get RequestHandler the server-side regular > > expression used when parsing fields and fields values to return documents > > with existing dynamic fields seems to be wrong. From the client side, I' > ve > > checked that the class DocField.java that parses SolrDocument to Bean > ones > > uses the following matcher: > > > > } else if (annotation.value().indexOf('*') >= 0) { // dynamic fields are > > annotated as @Field("categories_*") > > > > // if the field was annotated as a dynamic field, convert the name into a > > pattern > > > > // the wildcard (*) is supposed to be either a prefix or a suffix, hence > > the use of replaceFirst > > > > name = annotation.value().replaceFirst("\\*", "\\.*"); > > > > dynamicFieldNamePatternMatcher = Pattern.compile("^" + name + "$"); > > > > } else { > > > > name = annotation.value(); > > > > } > > > > So maybe a similar behavior from the server-side is wrong. That' s the > only > > reason I find to understand why when using /select all fields are > returned > > but when using /get those that matches *_facet regexp are not. > > > > If you can confirm that this is a bug (because maybe is the expected > > behavior, but after some years using Solr I think it is not) I can create > > the JIRA issue and debug it more deeply to apply a patch with the aim to > > help. > > > > > > Regards, > > > > > > -- > > - Luis Cappa > -- - Luis Cappa