TrieIntField, TrieDateField deprecated to? - solr

Clear Solr warnings and errors resulting from the deprecated classes below:
TrieIntField
Solr loaded a deprecated plugin/analysis class [solr.TrieIntField]. Please consult documentation how to replace it accordingly.
TrieFloatField
Solr loaded a deprecated plugin/analysis class [solr.TrieFloatField]. Please consult documentation how to replace it accordingly.
TrieLongField
Solr loaded a deprecated plugin/analysis class [solr.TrieLongField]. Please consult documentation how to replace it accordingly.
TrieDoubleField
Solr loaded a deprecated plugin/analysis class [solr.TrieDoubleField]. Please consult documentation how to replace it accordingly.
TrieDateField
Solr loaded a deprecated plugin/analysis class [solr.TrieDateField]. Please consult documentation how to replace it accordingly.

Major Changes in schema.xml Solr 8.0 and 9.0 (Schema Changes in 8.0 and 9.0)
The following changes impact how fields behave.
Here is a table of solr deprecated fields and what is being used in solr 8.0
Deprecated
Instead Use
CurrencyField
CurrencyFieldType
EnumField
EnumFieldType
LatLonType
LatLonPointSpatialField
TrieDateField
DatePointField
TrieDoubleField
DoublePointField
TrieFloatField
FloatPointField
TrieIntField
IntPointField
TrieLongField
LongPointField
TrieField
This field takes a type parameter to define the specific class of Trie* field to use; Use an appropriate Point Field type instead.
LowerCaseTokenizer
You are encouraged to use the LetterTokenizer and the LowerCaseFilter instead
Note: Please make sure to re-index after changing any of the above for the changes to work and avoiding to get wired values.
For more information, check the solr official website for more details here
Deprecated Field Types in Solr 9.0
Note:
All Trie* numeric and date field types have been deprecated in favor of *Point field types. Point field types are better at range queries (speed, memory, disk), however simple field:value queries underperform relative to Trie. Either accept this, or continue to use Trie fields. This shortcoming may be addressed in a future release.
Deprecated
Instead Use
CurrencyField
CurrencyFieldType
EnumField
EnumFieldType
TrieDateField
DatePointField
TrieDoubleField
DoublePointField
TrieFloatField
FloatPointField
TrieIntField
IntPointField
TrieLongField
LongPointField
TrieField
This field takes a type parameter to define the specific class of Trie* field to use; Use an appropriate Point Field type instead.
Recommended Field Types are:
BBoxField -> single rectangle
BinaryField -> Binary data
BoolField -> true or false
CollationField -> Unicode Collation
CurrencyFieldType -> Currencies and exchange rates.
DateRangeField -> Date Formatting and Date Math
DenseVectorField -> Dense Vector Search
DatePointField -> Date field.
DoublePointField -> Double field (64-bit IEEE floating point)
and many more..
You can read more details here

Related

Solr version field type

I'm looking for a field type that supports comparing versions, meaning I will be able to run lucene query with range of versions and find only the relevant versions:
eg.
sdkVersion: [3.0.0.0.1 TO 3.1.1.0]
for example right now im forced to write something like this:
sdkVersion:[2 TO 2.7.4.4] AND -sdkVersion:2.1?.*
because 2.17 is actually smaller than 2.7
Thanks
I don't think there is a field type that will do what you are asking for.
I would approach this by always storing the full zero-padded version in the sdkVersion field, for example:
store 02.07.04.04 rather than 2.7.4.4 and store 02.17.00.00 rather than 2.17
That way a query for sdkVersion:[02.00.00.00 TO 02.07.04.04] would do the proper filtering.

What replaced long as a field type from Solr 6 to Solr 7?

I'm migrating from Solr 6.6 to Solr 7.5. In building my schema, I got the following error...
"add-field":{
"name":"fkId",
"type":"long",
"indexed":true,
"stored":true},
"errorMessages":["Field 'fkId': Field type 'long' not found.\n"]},
What replaced 'long' as a type from Solr 6.6 to 7.5?
The definition of the field types are in your managed-schema file, so you can exam directly and compare on a filesystem (for non-Cloud setup) or in Admin UI.
Specifically, for longs, the original definition was Trie based which are deprecated. So, now Point-based implementation is preferred and is the only one included. So, you can just switch to plong instead.
Or you can include the original long definition and keep using it. The Trie-based implementation are deprecated, but are still used due to some speed-related use-cases.

Stop Solr replacing colons with underscores in fieldnames

I'm moving a system from using Solr 1.4 to Solr 6.x (or possible 5.x) and the fields names all contain colons (e.g. "rdf:type" ). I've converted all the configuration files to Solr 6.x version using a schema.xml file. I can see "rdf:type" in Solr's schema view.
These fieldnames worked fine in 1.4 but now colons are automatically converted to underscores when indexing is attempted.
For instance using Solr's built in interface, if I try to submit a simple document like:
{'rdf:type': 'http://purl.org/ontology/bibo/Note'}
I get an error message saying:
ERROR: [doc=682e3f70-a4bc-4336-9f69-e7d620fe5fff] unknown field 'rdf_type'
Is it possible to "turn off" this feature? Will using colons cause problems with then newest versions of Solr?
(On a side note, making "rdf:type" a compulsory field and then not including it causes an error which reads: "missing required field: rdf:type", i.e. it displays the correct name)
This behaviour is not "native" to Solr itself, but is part of the default update processor chain that is added to the configuration for the Schemaless mode in the bundled examples (which is the default).
The reason is that lucene uses : to separate field names from the values to be queried in those fields, so it's usually easier to keep : out of the field name.
You can change this by removing the FieldNameMutatingUpdateProcessorFactory from the update chain, or use your own schema (without the update processor chain).

DataStax Enterprise: No search results from Solr

I’m using DataStax 3.2.7 and have 2 rows in Cassandra that show up in cqlsh.
I cannot find these records in Solr, though, even after reloading the core and fully reindexing.
Any suggestions?
I also see this in the log: Type mapping versions older than 2 are unsupported for CQL3 table linkcurrent_search.content_items,​ forcing version 2.
When you are using Dynamic Fields to query Maps in Cassandra, you must begin the Key in your Map with the prefixed map literal. In your case the prefixed map literals are :
score_calculated_
score_value_
score_velocity_
shared_on_
The reason the error 'undefined field realtime' is coming is because realtime is not prefixed by the prefix specified for that field in schema.xml.
An example of what one of your records would look like would be:
{'score_value_realtime': 18.432}
Do the same for all the map values.
For more details see this url:
http://www.datastax.com/documentation/datastax_enterprise/3.2/datastax_enterprise/srch/srchDynFlds.html

Solr 3.5 field type

I'm using Solr 3.5 in the application that I'm working currently. I have defined few field types as custom which would be a prefixed values.
Mostly they are price which differs for each and every prefix.
Example 123_34.99 will define the price "34.99" in the store "123".
I need to know whether any exact/similar Out of Box fieldtype is there in Solr 4.1.0 to handle the above mentioned field types.
I guess a better approach to store your data would be to use Solr dynamic fields. Instead of storing your data as 123_34.99, wouldn't you want to store it in a price_STOREID field like
price_123 = 34.99
Or is there a specific reason you want to store it as 123_34.99?

Resources