def test_search_with_custom_vector_field_filter_string(self):
        """
        Search for the doc, with filter string
        """

        new_mappings = {
            "my_custom_vector": {
                "type": "custom_vector"
            },
            "my_custom_vector_2": {
                "type": "custom_vector"
            },
            "my_custom_vector_3": {
                "type": "custom_vector"
            },
        }

        for index in self.indexes:
            with self.subTest(f"Index: {index.name}, type: {index.type}"):
                add_docs_res = self.add_documents(
                    config=self.config, add_docs_params=AddDocsParams(
                        index_name=index.name,
                        docs=[
                            {
                                "_id": "custom vector doc 1",
                                "my_custom_vector": {
                                    "content": "red blue yellow",
                                    "vector": self.random_vector_1
                                }
                            },
                            {
                                "_id": "custom vector doc 2",
                                "my_custom_vector_2": {
                                    "content": "red",
                                    "vector": self.random_vector_1
                                }
                            },
                            {
                                "_id": "custom vector doc 3",
                                "my_custom_vector_2": {
                                    "content": "blue",
                                    "vector": self.random_vector_1
                                },
                                "my_custom_vector_3": {
                                    "content": "chocolate",
                                    "vector": self.random_vector_1
                                }
                            },
                            {
                                "_id": "custom vector doc 4",
                                "my_custom_vector": {
                                    "content": "yellow",
                                    "vector": self.random_vector_1
                                },
                                # Empty content field. Should not affect the document getting returned.
                                "my_custom_vector_2": {
                                    "vector": self.random_vector_1
                                },
                                "my_custom_vector_3": {
                                    "content": "chocolate",
                                    "vector": self.random_vector_1
                                }
                            },
                        ],
                        device="cpu",
                        mappings=new_mappings if isinstance(index, UnstructuredMarqoIndex) else None,
                        tensor_fields=["my_custom_vector", "my_custom_vector_2", "my_custom_vector_3"] \
                            if isinstance(index, UnstructuredMarqoIndex) else None
                    )
                )

                # No filter: all docs are returned.
                res = tensor_search.search(
                    config=self.config, index_name=index.name, text={"dummy text": 0},
                    search_method=enums.SearchMethod.TENSOR,
                    context=SearchContext(**{"tensor": [{"vector": self.random_vector_1, "weight": 1}], }),
                    result_count=10
                )
                res_ids = set([hit["_id"] for hit in res["hits"]])
                assert res_ids == {"custom vector doc 1", "custom vector doc 2", "custom vector doc 3", "custom vector doc 4"}

                # Filter: custom vector 3 has chocolate
                res = tensor_search.search(
                    config=self.config, index_name=index.name, text={"dummy text": 0},
                    search_method=enums.SearchMethod.TENSOR,
                    context=SearchContext(**{"tensor": [{"vector": self.random_vector_1, "weight": 1}], }),
                    filter="my_custom_vector_3:chocolate", result_count=10
                )
                res_ids = set([hit["_id"] for hit in res["hits"]])
                assert res_ids == {"custom vector doc 3", "custom vector doc 4"}

                # Filter: AND statement
                res = tensor_search.search(
                    config=self.config, index_name=index.name, text={"dummy text": 0},
                    search_method=enums.SearchMethod.TENSOR,
                    context=SearchContext(**{"tensor": [{"vector": self.random_vector_1, "weight": 1}], }),
                    filter="my_custom_vector_3:chocolate AND my_custom_vector_2:blue", result_count=10
                )
                res_ids = set([hit["_id"] for hit in res["hits"]])
                assert res_ids == {"custom vector doc 3"}

                # Filter: OR statement
                res = tensor_search.search(
                    config=self.config, index_name=index.name, text={"dummy text": 0},
                    search_method=enums.SearchMethod.TENSOR,
                    context=SearchContext(**{"tensor": [{"vector": self.random_vector_1, "weight": 1}], }),
                    filter="my_custom_vector:red OR my_custom_vector_2:red", result_count=10
                )
                res_ids = set([hit["_id"] for hit in res["hits"]])
                assert res_ids == {"custom vector doc 2"}

                # Filter: parenthesis
                res = tensor_search.search(
                    config=self.config, index_name=index.name, text={"dummy text": 0},
                    search_method=enums.SearchMethod.TENSOR,
                    context=SearchContext(**{"tensor": [{"vector": self.random_vector_1, "weight": 1}], }),
                    filter="my_custom_vector:(red blue yellow)", result_count=10
                )
                res_ids = set([hit["_id"] for hit in res["hits"]])
                assert res_ids == {"custom vector doc 1"}

        Search for the doc, with filter string
        
tests/integ_tests/tensor_search/integ_tests/test_custom_vector_field.py