def test_create_structured_image_index_with_custom_vector(self):
        """
        Tests if you can use the Python client to create a structured index with a custom vector
        """
        self.client.create_index(index_name=self.index_name,
                                 type="structured",
                                 model="open_clip/ViT-B-32/laion400m_e31",
                                 all_fields=[{"name": "my_custom_vector", "type": "custom_vector",
                                              "features": ["lexical_search", "filter"]}],
                                 tensor_fields=["my_custom_vector"],
                                 ann_parameters={
                                    "spaceType": "angular",
                                    "parameters": {"efConstruction": 512, "m": 16}
                                })

        # Random vectors for example purposes. replace these with your own.
        example_vector_1 = [i for i in range(512)]
        example_vector_2 = [1 / (i + 1) for i in range(512)]

        # We add the custom vector documents into our structured index.
        # We do NOT use mappings for custom vectors here.
        res = self.client.index(self.index_name).add_documents(
            documents=[
                {
                    "_id": "doc1",
                    "my_custom_vector": {
                        "vector": example_vector_1,
                        "content": "Singing audio file"
                    }
                },
                {
                    "_id": "doc2",
                    "my_custom_vector": {
                        "vector": example_vector_2,
                        "content": "Podcast audio file"
                    }
                }
            ]
        )
        self.assertEqual(res["errors"], False)

        # Tensor Search
        res = self.client.index(self.index_name).search(
            q={"dummy text": 0},
            context={"tensor":
                         [{"vector": example_vector_1, "weight": 1}]  # custom vector from doc1
                     }
        )
        self.assertEqual(res["hits"][0]["_id"], "doc1")

        # Make sure get documents works
        get_doc_res = self.client.index(self.index_name).get_documents(["doc1", "doc2"], expose_facets=True)
        self.assertEqual(get_doc_res["results"][0]["_id"], "doc1")
        self.assertEqual(get_doc_res["results"][0]["_found"], True)
        self.assertEqual(get_doc_res["results"][1]["_id"], "doc2")
        self.assertEqual(get_doc_res["results"][1]["_found"], True)

        # Lexical Search
        res = self.client.index(self.index_name).search(
            q="Podcast audio file", search_method="LEXICAL"
        )
        # self.assertEqual(res["hits"][0]["_id"], "doc2")     TODO: Investigate lexical search with custom vectors in structured

        # Filter search
        res = self.client.index(self.index_name).search(
            q="A rider is riding a horse jumping over the barrier.",
            filter_string="my_custom_vector:(Singing audio file)",
        )
        self.assertEqual(res["hits"][0]["_id"], "doc1")

        index_settings = self.client.index(self.index_name).get_settings()

        self.assertEqual([{'features': ['lexical_search', 'filter'], 'name': 'my_custom_vector', 'type': 'custom_vector'}],
                         index_settings['allFields'])

        Tests if you can use the Python client to create a structured index with a custom vector
        
tests/api_tests/v1/tests/api_tests/test_create_index.py