diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 46bc23a..3c7483d 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/modules.doctree b/.doctrees/modules.doctree index 3694722..f9075e6 100644 Binary files a/.doctrees/modules.doctree and b/.doctrees/modules.doctree differ diff --git a/_modules/marqo_instantapi/marqo_instantapi_adapter.html b/_modules/marqo_instantapi/marqo_instantapi_adapter.html index 34b1e57..31172d4 100644 --- a/_modules/marqo_instantapi/marqo_instantapi_adapter.html +++ b/_modules/marqo_instantapi/marqo_instantapi_adapter.html @@ -73,9 +73,11 @@
import marqo
import tldextract
-from marqo_instantapi.instant_api_client import InstantAPIClient
from collections import deque
import hashlib
+import concurrent.futures
+from marqo_instantapi.instant_api_client import InstantAPIClient
+
from typing import Optional, Union, Literal, Any
@@ -375,6 +377,45 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
return self.create_index(index_name, multimodal=True)
+ def _process_page(
+ self,
+ webpage_url: str,
+ api_method_name: str,
+ api_response_structure: dict,
+ enforce_schema: bool = True,
+ ) -> dict:
+ """Process a single page and extract data from it.
+
+ Args:
+ webpage_url (str): The URL of the webpage to process.
+ api_method_name (str): The name of the API method to use for data extraction.
+ api_response_structure (dict): The expected structure of the API's response.
+ enforce_schema (bool, optional): Toggle strict enforcement of InstantAPI responses against the schema. Defaults to True.
+
+ Returns:
+ dict: The processed page data.
+ """
+ page_data = self._extract_page_data(
+ webpage_url=webpage_url,
+ api_method_name=api_method_name,
+ api_response_structure=api_response_structure,
+ )
+
+ if enforce_schema:
+ if not self._check_against_schema(api_response_structure, page_data):
+ return {
+ "failed_check": True,
+ "data": {
+ "url": webpage_url,
+ "response_data": page_data,
+ "response": "Schema check failed",
+ },
+ }
+
+ page_data["_id"] = hashlib.md5(webpage_url.encode()).hexdigest()
+ page_data["_source_webpage_url"] = webpage_url
+ return {"failed_check": False, "data": (webpage_url, page_data)}
+
[docs]
def add_documents(
@@ -389,20 +430,22 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
total_image_weight: float = 0.9,
total_text_weight: float = 0.1,
enforce_schema: bool = True,
+ instantapi_threads: int = 10,
) -> list[dict]:
"""Add documents to a Marqo index from a list of webpage URLs, data is extracted using the InstantAPI Retrieve API.
Args:
webpage_urls (list[str]): A list of webpage URLs to index.
- index_name (str): The name of the index to add documents to. If the index does not exist, it will be created based on the fields to index.
- api_response_structure (dict): The expected structure of the API's response, this is passed to InstantAPI.
- api_method_name (str): The name of the API method to use for data extraction, this is passed to InstantAPI and should be descriptive to help to AI know what information to get.
+ index_name (str): The name of the index to add documents to.
+ api_response_structure (dict): The expected structure of the API's response.
+ api_method_name (str): The name of the API method to use for data extraction.
text_fields_to_index (list[str], optional): A list of text fields for indexing. Defaults to [].
image_fields_to_index (list[str], optional): A list of image fields for indexing. Defaults to [].
- client_batch_size (int, optional): The client batch size for Marqo, controls how many docs are sent at a time. Defaults to 8.
- total_image_weight (float, optional): The total weight for images, applies when both image and text fields are provided. Defaults to 0.9.
- total_text_weight (float, optional): The total weight for text, applies when both image and text fields are provided. Defaults to 0.1.
+ client_batch_size (int, optional): The client batch size for Marqo. Defaults to 8.
+ total_image_weight (float, optional): The total weight for images. Defaults to 0.9.
+ total_text_weight (float, optional): The total weight for text. Defaults to 0.1.
enforce_schema (bool, optional): Toggle strict enforcement of InstantAPI responses against the schema. Defaults to True.
+ instantapi_threads (int, optional): The number of threads to use for InstantAPI requests. Defaults to 10.
Raises:
ValueError: If no fields are provided for indexing.
@@ -410,7 +453,6 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
Returns:
list[dict]: A list of responses for each document added.
"""
-
if not text_fields_to_index and not image_fields_to_index:
raise ValueError(
"At least one field must be specified in text_fields_to_index and/or image_fields_to_index."
@@ -433,33 +475,29 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
self._check_schema_for_marqo(api_response_structure)
+ # Parallel processing with ThreadPoolExecutor
failed_schema_checks = []
urls_to_index = []
documents = []
- for webpage_url in webpage_urls:
- page_data = self._extract_page_data(
- webpage_url=webpage_url,
- api_method_name=api_method_name,
- api_response_structure=api_response_structure,
- )
-
- if enforce_schema:
- if not self._check_against_schema(api_response_structure, page_data):
- failed_schema_checks.append(
- {
- "url": webpage_url,
- "response_data": page_data,
- "response": "Schema check failed",
- }
- )
- continue
- urls_to_index.append(webpage_url)
- page_data["_id"] = hashlib.md5(webpage_url.encode()).hexdigest()
- page_data["_source_webpage_url"] = webpage_url
+ with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
+ results = executor.map(
+ lambda url: self._process_page(
+ url, api_method_name, api_response_structure, enforce_schema
+ ),
+ webpage_urls,
+ )
- documents.append(page_data)
+ # Process the results and separate failed schema checks
+ for result in results:
+ if result["failed_check"]:
+ failed_schema_checks.append(result["data"])
+ else:
+ webpage_url, page_data = result["data"]
+ urls_to_index.append(webpage_url)
+ documents.append(page_data)
+ # Prepare the mappings and tensor fields
mappings, tensor_fields = self._make_mappings(
text_fields_to_index,
image_fields_to_index,
@@ -467,6 +505,7 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
total_text_weight,
)
+ # Add the documents to Marqo
responses = self.mq.index(index_name).add_documents(
documents=documents,
tensor_fields=tensor_fields,
@@ -477,6 +516,7 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
if not isinstance(responses, list):
responses = [responses]
+ # Collate all responses
outcomes = failed_schema_checks
for response in responses:
for item in response["items"]:
@@ -589,7 +629,7 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
limit: int = 10,
offset: int = 0,
searchable_attributes: Optional[list] = None,
- method: Literal["tensor", "lexical", "hybrid"] = "hybrid",
+ search_method: Literal["tensor", "lexical", "hybrid"] = "hybrid",
) -> dict:
"""Search a Marqo index via a simplified interface.
@@ -599,7 +639,7 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
limit (int, optional): The number of results to retrieve. Defaults to 10.
offset (int, optional): The offset for the search results. Defaults to 0.
searchable_attributes (Optional[list], optional): The attributes to search. Defaults to None.
- method (Literal["tensor", "lexical", "hybrid"], optional): The search method to use, tensor uses only vectors, lexical uses only text, hybrid combines both with RRF. Defaults to "hybrid".
+ search_method (Literal["tensor", "lexical", "hybrid"], optional): The search method to use, tensor uses only vectors, lexical uses only text, hybrid combines both with RRF. Defaults to "hybrid".
Raises:
ValueError: If an invalid search method is provided.
@@ -608,7 +648,7 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
dict: The search response from Marqo.
"""
- if method not in ("tensor", "lexical", "hybrid"):
+ if search_method not in ("tensor", "lexical", "hybrid"):
raise ValueError(
"Invalid search method, must be one of 'tensor', 'lexical', or 'hybrid'."
)
@@ -617,13 +657,28 @@ Source code for marqo_instantapi.marqo_instantapi_adapter
if limit + offset > 2000:
ef_search = limit + offset
+ if searchable_attributes is not None:
+ # TODO: Update when marqo reaches 2.12
+ raise NotImplementedError(
+ "Search with unstructured indexes does not support searchable attributes yet. This will be implemented in Marqo 2.12."
+ )
+
+ hybrid_parameters = None
+ if search_method == "hybrid" and searchable_attributes is not None:
+ hybrid_parameters = {
+ "searchableAttributesLexical": searchable_attributes,
+ "searchableAttributesTensor": searchable_attributes,
+ }
+ searchable_attributes = None
+
response = self.mq.index(index_name).search(
q,
limit=limit,
offset=offset,
ef_search=ef_search,
searchable_attributes=searchable_attributes,
- search_method=method,
+ search_method=search_method,
+ hybrid_parameters=hybrid_parameters,
)
return response
diff --git a/modules.html b/modules.html
index d544e96..9ab38ba 100644
--- a/modules.html
+++ b/modules.html
@@ -144,21 +144,22 @@
A class for interfacing with Marqo and InstantAPI.
-
-add_documents(webpage_urls, index_name, api_response_structure, api_method_name, text_fields_to_index=[], image_fields_to_index=[], client_batch_size=8, total_image_weight=0.9, total_text_weight=0.1, enforce_schema=True)[source]
+add_documents(webpage_urls, index_name, api_response_structure, api_method_name, text_fields_to_index=[], image_fields_to_index=[], client_batch_size=8, total_image_weight=0.9, total_text_weight=0.1, enforce_schema=True, instantapi_threads=10)[source]
Add documents to a Marqo index from a list of webpage URLs, data is extracted using the InstantAPI Retrieve API.
- Parameters:
webpage_urls (list[str]) – A list of webpage URLs to index.
-index_name (str) – The name of the index to add documents to. If the index does not exist, it will be created based on the fields to index.
-api_response_structure (dict) – The expected structure of the API’s response, this is passed to InstantAPI.
-api_method_name (str) – The name of the API method to use for data extraction, this is passed to InstantAPI and should be descriptive to help to AI know what information to get.
+index_name (str) – The name of the index to add documents to.
+api_response_structure (dict) – The expected structure of the API’s response.
+api_method_name (str) – The name of the API method to use for data extraction.
text_fields_to_index (list[str], optional) – A list of text fields for indexing. Defaults to [].
image_fields_to_index (list[str], optional) – A list of image fields for indexing. Defaults to [].
-client_batch_size (int, optional) – The client batch size for Marqo, controls how many docs are sent at a time. Defaults to 8.
-total_image_weight (float, optional) – The total weight for images, applies when both image and text fields are provided. Defaults to 0.9.
-total_text_weight (float, optional) – The total weight for text, applies when both image and text fields are provided. Defaults to 0.1.
+client_batch_size (int, optional) – The client batch size for Marqo. Defaults to 8.
+total_image_weight (float, optional) – The total weight for images. Defaults to 0.9.
+total_text_weight (float, optional) – The total weight for text. Defaults to 0.1.
enforce_schema (bool, optional) – Toggle strict enforcement of InstantAPI responses against the schema. Defaults to True.
+instantapi_threads (int, optional) – The number of threads to use for InstantAPI requests. Defaults to 10.
- Raises:
@@ -255,7 +256,7 @@
-
-search(q, index_name, limit=10, offset=0, searchable_attributes=None, method='hybrid')[source]
+search(q, index_name, limit=10, offset=0, searchable_attributes=None, search_method='hybrid')[source]
Search a Marqo index via a simplified interface.
- Parameters:
@@ -265,7 +266,7 @@
limit (int, optional) – The number of results to retrieve. Defaults to 10.
offset (int, optional) – The offset for the search results. Defaults to 0.
searchable_attributes (Optional[list], optional) – The attributes to search. Defaults to None.
-method (Literal["tensor", "lexical", "hybrid"], optional) – The search method to use, tensor uses only vectors, lexical uses only text, hybrid combines both with RRF. Defaults to “hybrid”.
+search_method (Literal["tensor", "lexical", "hybrid"], optional) – The search method to use, tensor uses only vectors, lexical uses only text, hybrid combines both with RRF. Defaults to “hybrid”.
- Raises:
diff --git a/searchindex.js b/searchindex.js
index bdb1acb..3f645c1 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "Marqo InstantAPI": [[1, null]], "marqo-instantapi documentation": [[0, null]]}, "docnames": ["index", "modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "modules.rst"], "indexentries": {"add_documents() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.add_documents", false]], "crawl() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.crawl", false]], "create_index() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.create_index", false]], "delete_index() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.delete_index", false]], "instantapiclient (class in marqo_instantapi.instant_api_client)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient", false]], "instantapimarqoadapter (class in marqo_instantapi.marqo_instantapi_adapter)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter", false]], "marqo_instantapi": [[1, "module-marqo_instantapi", false]], "marqo_instantapi.instant_api_client": [[1, "module-marqo_instantapi.instant_api_client", false]], "marqo_instantapi.marqo_instantapi_adapter": [[1, "module-marqo_instantapi.marqo_instantapi_adapter", false]], "module": [[1, "module-marqo_instantapi", false], [1, "module-marqo_instantapi.instant_api_client", false], [1, "module-marqo_instantapi.marqo_instantapi_adapter", false]], "next_pages() (marqo_instantapi.instant_api_client.instantapiclient method)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient.next_pages", false]], "retrieve() (marqo_instantapi.instant_api_client.instantapiclient method)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient.retrieve", false]], "search() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.search", false]]}, "objects": {"": [[1, 0, 0, "-", "marqo_instantapi"]], "marqo_instantapi": [[1, 0, 0, "-", "instant_api_client"], [1, 0, 0, "-", "marqo_instantapi_adapter"]], "marqo_instantapi.instant_api_client": [[1, 1, 1, "", "InstantAPIClient"]], "marqo_instantapi.instant_api_client.InstantAPIClient": [[1, 2, 1, "", "next_pages"], [1, 2, 1, "", "retrieve"]], "marqo_instantapi.marqo_instantapi_adapter": [[1, 1, 1, "", "InstantAPIMarqoAdapter"]], "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter": [[1, 2, 1, "", "add_documents"], [1, 2, 1, "", "crawl"], [1, 2, 1, "", "create_index"], [1, 2, 1, "", "delete_index"], [1, 2, 1, "", "search"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method"}, "terms": {"": 1, "0": 1, "1": 1, "10": 1, "8": 1, "8882": 1, "9": 1, "A": 1, "If": 1, "The": 1, "ad": 1, "add": 1, "add_docu": 1, "against": 1, "ai": 1, "allowed_domain": 1, "alreadi": 1, "also": 1, "an": 1, "ani": 1, "api": 1, "api_kei": 1, "api_method_nam": 1, "api_paramet": 1, "api_response_structur": 1, "appli": 1, "ar": 1, "attribut": 1, "automat": 1, "base": 1, "batch": 1, "befor": 1, "bool": 1, "both": 1, "browser": 1, "cach": 1, "cache_ttl": 1, "check": 1, "class": 1, "client": 1, "client_batch_s": 1, "code": 1, "combin": 1, "confirm": 1, "conform": 1, "control": 1, "countri": 1, "country_cod": 1, "crawl": 1, "creat": 1, "create_index": 1, "creation": 1, "data": 1, "default": 1, "delet": 1, "delete_index": 1, "descript": 1, "dict": 1, "doc": 1, "document": 1, "doe": 1, "domain": 1, "download": 1, "each": 1, "enabl": 1, "enable_javascript": 1, "endpoint": 1, "enforc": 1, "enforce_schema": 1, "exampl": 1, "exclud": 1, "exist": 1, "expect": 1, "extract": 1, "fals": 1, "field": 1, "fine": 1, "float": 1, "from": 1, "get": 1, "grain": 1, "help": 1, "how": 1, "http": 1, "hybrid": 1, "i": 1, "imag": 1, "image_fields_to_index": 1, "implement": 1, "index": [0, 1], "index_nam": 1, "influenc": 1, "inform": 1, "initi": 1, "initial_webpage_url": 1, "instant_api_cli": 1, "instantapi_kei": 1, "instantapicli": [0, 1], "instantapimarqoadapt": [0, 1], "int": 1, "interfac": 1, "invalid": 1, "javascript": 1, "know": 1, "lexic": 1, "limit": 1, "list": 1, "liter": 1, "live": 1, "localhost": 1, "mani": 1, "marqo_adapt": 1, "marqo_api_kei": 1, "marqo_instantapi": 1, "marqo_instantapi_adapt": 1, "marqo_url": 1, "max_pag": 1, "maximum": 1, "method": 1, "model": 1, "modul": 0, "multimod": 1, "my": 1, "name": 1, "need": 1, "next_pag": 1, "none": 1, "number": 1, "object": 1, "off": 1, "offset": 1, "onli": 1, "option": 1, "output": 1, "page": [0, 1], "paramet": 1, "pass": 1, "provid": 1, "q": 1, "queri": 1, "rais": 1, "recommend": 1, "request": 1, "respons": 1, "result": 1, "retriev": 1, "return": 1, "rrf": 1, "schema": 1, "search": [0, 1], "searchable_attribut": 1, "select": 1, "sent": 1, "serp": 1, "serp_limit": 1, "serp_page_num": 1, "serp_sit": 1, "set": 1, "should": 1, "simplifi": 1, "site": 1, "size": 1, "skip": 1, "skip_if_exist": 1, "skip_if_not_exist": 1, "sourc": 1, "specif": 1, "specifi": 1, "start": 1, "str": 1, "strict": 1, "string": 1, "structur": 1, "tensor": 1, "text": 1, "text_fields_to_index": 1, "them": 1, "thi": 1, "time": 1, "todo": 1, "toggl": 1, "total": 1, "total_image_weight": 1, "total_text_weight": 1, "true": 1, "type": 1, "union": 1, "url": 1, "us": 1, "valueerror": 1, "vector": 1, "verbos": 1, "via": 1, "wait": 1, "wait_for_xpath": 1, "webpag": 1, "webpage_url": 1, "weight": 1, "what": 1, "when": 1, "whether": 1, "xpath": 1}, "titles": ["marqo-instantapi documentation", "Marqo InstantAPI"], "titleterms": {"content": 0, "document": 0, "indic": 0, "instantapi": [0, 1], "marqo": [0, 1], "tabl": 0}})
\ No newline at end of file
+Search.setIndex({"alltitles": {"Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "Marqo InstantAPI": [[1, null]], "marqo-instantapi documentation": [[0, null]]}, "docnames": ["index", "modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "modules.rst"], "indexentries": {"add_documents() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.add_documents", false]], "crawl() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.crawl", false]], "create_index() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.create_index", false]], "delete_index() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.delete_index", false]], "instantapiclient (class in marqo_instantapi.instant_api_client)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient", false]], "instantapimarqoadapter (class in marqo_instantapi.marqo_instantapi_adapter)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter", false]], "marqo_instantapi": [[1, "module-marqo_instantapi", false]], "marqo_instantapi.instant_api_client": [[1, "module-marqo_instantapi.instant_api_client", false]], "marqo_instantapi.marqo_instantapi_adapter": [[1, "module-marqo_instantapi.marqo_instantapi_adapter", false]], "module": [[1, "module-marqo_instantapi", false], [1, "module-marqo_instantapi.instant_api_client", false], [1, "module-marqo_instantapi.marqo_instantapi_adapter", false]], "next_pages() (marqo_instantapi.instant_api_client.instantapiclient method)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient.next_pages", false]], "retrieve() (marqo_instantapi.instant_api_client.instantapiclient method)": [[1, "marqo_instantapi.instant_api_client.InstantAPIClient.retrieve", false]], "search() (marqo_instantapi.marqo_instantapi_adapter.instantapimarqoadapter method)": [[1, "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter.search", false]]}, "objects": {"": [[1, 0, 0, "-", "marqo_instantapi"]], "marqo_instantapi": [[1, 0, 0, "-", "instant_api_client"], [1, 0, 0, "-", "marqo_instantapi_adapter"]], "marqo_instantapi.instant_api_client": [[1, 1, 1, "", "InstantAPIClient"]], "marqo_instantapi.instant_api_client.InstantAPIClient": [[1, 2, 1, "", "next_pages"], [1, 2, 1, "", "retrieve"]], "marqo_instantapi.marqo_instantapi_adapter": [[1, 1, 1, "", "InstantAPIMarqoAdapter"]], "marqo_instantapi.marqo_instantapi_adapter.InstantAPIMarqoAdapter": [[1, 2, 1, "", "add_documents"], [1, 2, 1, "", "crawl"], [1, 2, 1, "", "create_index"], [1, 2, 1, "", "delete_index"], [1, 2, 1, "", "search"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method"}, "terms": {"": 1, "0": 1, "1": 1, "10": 1, "8": 1, "8882": 1, "9": 1, "A": 1, "If": 1, "The": 1, "ad": 1, "add": 1, "add_docu": 1, "against": 1, "allowed_domain": 1, "alreadi": 1, "also": 1, "an": 1, "ani": 1, "api": 1, "api_kei": 1, "api_method_nam": 1, "api_paramet": 1, "api_response_structur": 1, "appli": 1, "ar": 1, "attribut": 1, "automat": 1, "base": 1, "batch": 1, "befor": 1, "bool": 1, "both": 1, "browser": 1, "cach": 1, "cache_ttl": 1, "check": 1, "class": 1, "client": 1, "client_batch_s": 1, "code": 1, "combin": 1, "confirm": 1, "conform": 1, "control": 1, "countri": 1, "country_cod": 1, "crawl": 1, "creat": 1, "create_index": 1, "creation": 1, "data": 1, "default": 1, "delet": 1, "delete_index": 1, "dict": 1, "doc": 1, "document": 1, "doe": 1, "domain": 1, "download": 1, "each": 1, "enabl": 1, "enable_javascript": 1, "endpoint": 1, "enforc": 1, "enforce_schema": 1, "exampl": 1, "exclud": 1, "exist": 1, "expect": 1, "extract": 1, "fals": 1, "field": 1, "fine": 1, "float": 1, "from": 1, "grain": 1, "how": 1, "http": 1, "hybrid": 1, "i": 1, "imag": 1, "image_fields_to_index": 1, "implement": 1, "index": [0, 1], "index_nam": 1, "influenc": 1, "initi": 1, "initial_webpage_url": 1, "instant_api_cli": 1, "instantapi_kei": 1, "instantapi_thread": 1, "instantapicli": [0, 1], "instantapimarqoadapt": [0, 1], "int": 1, "interfac": 1, "invalid": 1, "javascript": 1, "lexic": 1, "limit": 1, "list": 1, "liter": 1, "live": 1, "localhost": 1, "mani": 1, "marqo_adapt": 1, "marqo_api_kei": 1, "marqo_instantapi": 1, "marqo_instantapi_adapt": 1, "marqo_url": 1, "max_pag": 1, "maximum": 1, "method": 1, "model": 1, "modul": 0, "multimod": 1, "my": 1, "name": 1, "need": 1, "next_pag": 1, "none": 1, "number": 1, "object": 1, "off": 1, "offset": 1, "onli": 1, "option": 1, "output": 1, "page": [0, 1], "paramet": 1, "pass": 1, "provid": 1, "q": 1, "queri": 1, "rais": 1, "recommend": 1, "request": 1, "respons": 1, "result": 1, "retriev": 1, "return": 1, "rrf": 1, "schema": 1, "search": [0, 1], "search_method": 1, "searchable_attribut": 1, "select": 1, "sent": 1, "serp": 1, "serp_limit": 1, "serp_page_num": 1, "serp_sit": 1, "set": 1, "simplifi": 1, "site": 1, "size": 1, "skip": 1, "skip_if_exist": 1, "skip_if_not_exist": 1, "sourc": 1, "specif": 1, "specifi": 1, "start": 1, "str": 1, "strict": 1, "string": 1, "structur": 1, "tensor": 1, "text": 1, "text_fields_to_index": 1, "them": 1, "thi": 1, "thread": 1, "time": 1, "todo": 1, "toggl": 1, "total": 1, "total_image_weight": 1, "total_text_weight": 1, "true": 1, "type": 1, "union": 1, "url": 1, "us": 1, "valueerror": 1, "vector": 1, "verbos": 1, "via": 1, "wait": 1, "wait_for_xpath": 1, "webpag": 1, "webpage_url": 1, "weight": 1, "when": 1, "whether": 1, "xpath": 1}, "titles": ["marqo-instantapi documentation", "Marqo InstantAPI"], "titleterms": {"content": 0, "document": 0, "indic": 0, "instantapi": [0, 1], "marqo": [0, 1], "tabl": 0}})
\ No newline at end of file