Search
POST /indexes/{index_name}/search
Path parameters
Name | Type | Description |
---|---|---|
index_name * |
String | name of the requested index |
Body
Search Parameter | Type | Default value | Description |
---|---|---|---|
q |
String | "" |
Query string |
limit |
Integer | 20 |
Maximum number of document chunks to be returned |
filter |
String | null |
Filter string in the Marqo DSL Language |
searchableAttributes |
Array of strings | ["*"] |
Attributes to display in the returned documents |
highlight |
Boolean | true |
Return highlights for the document match |
searchMethod |
String | "TENSOR" |
The search method, can be LEXICAL or TENSOR |
attributesToRetrieve |
String | ["*"] |
Attributes to return in the search response |
reRanker |
String | null |
Method to use for reranking results |
Query parameters
Search Parameter | Type | Default value | Description |
---|---|---|---|
device |
String | cpu |
The device used to search. This allows you to use cuda GPUs to speed up indexing, if available. Options include cpu and cuda , cuda1 , cuda2 etc. The cuda option tells Marqo to use all available cuda devices. |
Response
Name | Type | Description |
---|---|---|
hits |
Array of objects | Results of the query |
limit |
Number | Number of documents chunks specified in the query |
processingTimeMs |
Number | Processing time of the query |
query |
String | Query originating the response |
Example
curl -XPOST 'http://localhost:8882/indexes/my-first-index/search' -H 'Content-type:application/json' -d '
{
"q": "what is the best outfit to wear on the moon?",
"searchableAttributes": ["Description"],
"limit": 10,
"showHighlights": true,
"filter": "*:*",
"searchMethod": "TENSOR",
"attributesToRetrieve": ["Title", "Description"]
}'
mq.index("my-first-index").search(
q="What is the best outfit to wear on the moon?",
searchable_attributes=["Description"],
limit=10,
show_highlights=True,
filter_string="*:*",
search_method=marqo.SearchMethods.LEXICAL,
attributes_to_retrieve=["Title", "Description"]
)
Response: 200 Ok
{
"hits": [
{
"Title": "Extravehicular Mobility Unit (EMU)",
"Description": "The EMU is a spacesuit that provides environmental protection, mobility, life support, and communications for astronauts",
"_highlights": {
"Description": "The EMU is a spacesuit that provides environmental protection, mobility, life support, and communications for astronauts"
},
"_id": "article_591",
"_score": 1.2387788
},
{
"Title": "The Travels of Marco Polo",
"Description": "A 13th-century travelogue describing Polo's travels",
"_highlights": {"Title": "The Travels of Marco Polo"},
"_id": "e00d1a8d-894c-41a1-8e3b-d8b2a8fce12a",
"_score": 1.2047464
}
],
"limit": 10,
"processingTimeMs": 49,
"query": "What is the best outfit to wear on the moon?"
}
Query (q)
Parameter: q
Expected value: Any string
Default value: null
Limit
Parameter: limit
Expected value: Any positive integer
Default value: 20
Sets the maximum number of documents returned by a single query.
Filter
Parameter: filter
Expected value: A filter string written in Marqo's query DSL.
Default value: null
Uses filter expressions to refine search results. Attributes used as filter criteria must be added to the filterableAttributes
list.
Read our guide on filtering, faceted search and filter expressions.
Example
You can write a filter expression in string syntax using logical connectives (see filtering in Marqo):
"(type:confectionary AND food:(ice cream)) OR animal:hippo"
Searchable attributes
Parameter: searchableAttributes
Expected value: An array strings
Default value: ["*"]
Configures which attributes will be searched for query matches.
If no value is specified, searchableAttributes
will be set to the wildcard and search all fields.
Example
You can write the searchableAttributes as a list of strings, for example if you only wanted to search the "Description" field of your documents:
["Description"]
Reranker
Parameter: reRanker
Expected value: One of "owl/ViT-B/32"
, "owl/ViT-B/16"
, "owl/ViT-L/14"
Default value: null
Selects the method for reranking results. See the Models reference reranking section for more details.
If no value is specified, reRanker
will be set to null
and no reranking will occur.
Example
You can write reRanker as a string, for example:
"owl/ViT-B/32"