alessandrobenedetti commented on code in PR #1435:
URL: https://github.com/apache/solr/pull/1435#discussion_r1149553669
##########
solr/core/src/java/org/apache/solr/schema/DenseVectorField.java:
##########
@@ -205,53 +257,144 @@ public IndexableField createField(SchemaField field,
Object parsedVector) {
* org.apache.solr.handler.loader.CSVLoader} produces an ArrayList of String
- {@link
* org.apache.solr.handler.loader.JsonLoader} produces an ArrayList of
Double - {@link
* org.apache.solr.handler.loader.JavabinLoader} produces an ArrayList of
Float
- *
- * @param inputValue - An {@link ArrayList} containing the elements of the
vector
- * @return the vector parsed
*/
- float[] parseVector(Object inputValue) {
- if (!(inputValue instanceof List)) {
- throw new SolrException(
- SolrException.ErrorCode.BAD_REQUEST,
- "incorrect vector format."
- + " The expected format is an array :'[f1,f2..f3]' where each
element f is a float");
+ public VectorBuilder getVectorBuilder(Object inputValue) {
+ switch (vectorEncoding) {
+ case FLOAT32:
Review Comment:
Question:
I have seen the polimorphic approach and it's cool.
But at the moment each class implementing the abstract will actually
implement just one method (or the getByteVector or the getFloatVector).
Can't we make the vectorBuilder class depending on a type, and the
getVector, being type parametric?
I'm not sure if this will remove entirely the necessity of abstract +2
implementers (probably not), but at least it will ease this piece of code,
because potentially we have initialised the VectorBuilder in a switch case
already, and we can just ask for the vector.
Happy to have a call to clarify this
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]