def semi_structured_marqo_index(
            cls,
            name: str,
            model: Model = Model(name='hf/all_datasets_v4_MiniLM-L6'),
            normalize_embeddings: bool = True,
            text_preprocessing: TextPreProcessing = TextPreProcessing(
                split_length=2,
                split_overlap=0,
                split_method=TextSplitMethod.Sentence
            ),
            image_preprocessing: ImagePreProcessing = ImagePreProcessing(
                patch_method=None
            ),
            video_preprocessing: VideoPreProcessing = VideoPreProcessing(
                split_length=20,
                split_overlap=1,
            ),
            audio_preprocessing: AudioPreProcessing = AudioPreProcessing(
                split_length=20,
                split_overlap=1,
            ),
            distance_metric: DistanceMetric = DistanceMetric.Angular,
            vector_numeric_type: VectorNumericType = VectorNumericType.Float,
            hnsw_config: HnswConfig = HnswConfig(
                ef_construction=128,
                m=16
            ),
            marqo_version=get_version(),
            created_at=int(time.time()),
            updated_at=int(time.time()),
            treat_urls_and_pointers_as_images=True,
            treat_urls_and_pointers_as_media=True,
            filter_string_max_length=100,
            version=None,
            lexical_field_names=(),
            tensor_field_names=(),
            string_array_field_names=(),
    ) -> SemiStructuredMarqoIndex:
        """
        Helper method that provides reasonable defaults for UnstructuredMarqoIndex.
        """
        return SemiStructuredMarqoIndex(
            name=name,
            schema_name=name,
            model=model,
            normalize_embeddings=normalize_embeddings,
            text_preprocessing=text_preprocessing,
            image_preprocessing=image_preprocessing,
            video_preprocessing=video_preprocessing,
            audio_preprocessing=audio_preprocessing,
            distance_metric=distance_metric,
            vector_numeric_type=vector_numeric_type,
            hnsw_config=hnsw_config,
            marqo_version=marqo_version,
            created_at=created_at,
            updated_at=updated_at,
            treat_urls_and_pointers_as_images=treat_urls_and_pointers_as_images,
            treat_urls_and_pointers_as_media=treat_urls_and_pointers_as_media,
            filter_string_max_length=filter_string_max_length,
            version=version,
            lexical_fields=[
                Field(name=field_name, type=FieldType.Text,
                      features=[FieldFeature.LexicalSearch],
                      lexical_field_name=f'{SemiStructuredVespaSchema.FIELD_INDEX_PREFIX}{field_name}'
                      ) for field_name in lexical_field_names
            ],  # : List[Field]
            tensor_fields=[
                TensorField(
                    name=field_name,
                    chunk_field_name=f'{SemiStructuredVespaSchema.FIELD_CHUNKS_PREFIX}{field_name}',
                    embeddings_field_name=f'{SemiStructuredVespaSchema.FIELD_EMBEDDING_PREFIX}{field_name}',
                ) for field_name in tensor_field_names
            ],  # : List[TensorField]
            string_array_fields=[
                StringArrayField(
                    name=field_name, type=FieldType.ArrayText, features=[FieldFeature.Filter],
                    string_array_field_name=f'{SemiStructuredVespaSchema.FIELD_STRING_ARRAY_PREFIX}{field_name}'
                ) for field_name in string_array_field_names
            ],
        )

        Helper method that provides reasonable defaults for UnstructuredMarqoIndex.
        
tests/unit_tests/marqo_test.py