Let's say I want to do faceting on the combination of two fields in my doc.
For example:
Field1 Field2
A B
C D
A B
A C
C B
C D
Will have the facet result like
AB [2]
CD [2]
AC [1]
CB [1]
Is this possible? I mean on the fly, which means the fields are picked randomly, and therefore cannot create a copyfield during index.
You can group two fields using the Pivot Facets which is available on the Solr 4.0.
You can run the following query on your index to get it.
http://localhost:8181/solr/collection1/select?q=*:*&facet=true&facet.pivot=field1,field2
Then, the result will be like :
<lst name="facet_pivot">
<arr name="field1,field2">
<lst>
<str name="field">field1</str>
<str name="value">A</str>
<int name="count">3</int>
<arr name="pivot">
<lst>
<str name="field">field2</str>
<str name="value">B</str>
<int name="count">2</int>
</lst>
<lst>
<str name="field">field2</str>
<str name="value">C</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
<lst>
<str name="field">field1</str>
<str name="value">C</str>
<int name="count">3</int>
<arr name="pivot">
<lst>
<str name="field">field2</str>
<str name="value">D</str>
<int name="count">2</int>
</lst>
<lst>
<str name="field">field2</str>
<str name="value">B</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
</arr>
</lst>