0
votes

From Cassandra Datastax documentation: https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/search/customizeSchemaSearch.html, it is written:

Fields with indexed="true" are indexed and stored as secondary files in Lucene so that the fields are searchable. The indexed fields are stored in the database, not in Lucene, regardless of the value of the stored attribute value, with the exception of copy fields. Copy field destinations are not stored in the database.

I'd like to know from where the data is taken when running a CQL Solr Request (e.g. SELECT first_name, last_name FROM individual where solr_query=...).

first_name and last_name are fetched from the cassandra database or from the Solr index that store the field as well ?

I don't get the "Fields with indexed="true" are indexed and stored as secondary files in Lucene" and then "The indexed fields are stored in the database, not in Lucene" which seems contradictory ?

Thanks for your help !

1

1 Answers

1
votes

When you issue

SELECT first_name, last_name FROM individual WHERE solr_query=...;

first_name and last_name must exist in the Cassandra table individual, they are not stored in Lucene (as the documentation states).

The line of documentation should read:

Fields with indexed="true" are indexed and stored as secondary index files in Lucene because the Solr / Lucene integration in DSE uses Cassandra secondary index implementation.

These index files are searched and a set of unique IDs returned that are used to read rows from the Cassandra table.