Filtering is similar to facets selection, since the results will be filtered based upon selected facets AND filters. However, with filters, you don't have access to results grouping, list and count of the values, ...
Filters can be applied to any attribute in the catalog
Filter the results using an SQL-like syntax. The generic syntax is as follows:
Copy filterRule: `${attribute} ${rule_operator} ${value}`
filterGroup: `(${filterRule1} ${group_operator} ${filterRule2} ...)`
rule_operator: =, !=, <, <=, >, >=
group_operator: AND, OR
Copy size = 137
size != 137
price > 50
(size = 137)
(size = 137 OR size = 133 OR size = 48)
price >= 10 AND price < 100
(size = 137 OR size = 119) AND (price > 10 AND price < 100)
size = 137 OR price > 10
size = 137 AND price > 10
SDK - JS API - POST API - GET
NodeJS / NPM example
Copy import { search } from '@attraqt/search';
const query = 'T-shirt';
search.init({ token: SEARCH_API_TOKEN });
const response = await search.query(query, {
filter: 'price > 10'
});
console.log(response);
HTML example
Copy <script type="text/javascript">
xo.init({
search: {
token: SEARCH_API_TOKEN
}
});
xo.search.query('T-Shirt', {
filter: 'price > 10'
}).then((response) => {
console.log(response);
});
</script>
HTTP example
Copy POST https://api-eu.attraqt.io/search HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"token": "SEARCH_API_TOKEN",
"query": "T-Shirt",
"options": {
"filter": "price > 10"
}
}
curl
example
Copy curl -d "{\"token\":\"${SEARCH_API_TOKEN}\", \"query\":\"T-Shirt\", \"options\":{\"filter\": \"price > 10\"}}" \
-H "Content-Type: application/json; charset=UTF-8" \
-X POST "https://api-eu.attraqt.io/search"
JavaScript example
Copy const response = await fetch('https://api-eu.attraqt.io/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=UTF-8'
},
body: JSON.stringify({
token: SEARCH_API_TOKEN,
query: 'T-Shirt',
options: {
filter: 'price > 10'
}
})
});
if (response.ok) {
console.log(await response.json());
}
HTTP example
Copy GET https://api-eu.attraqt.io/search/:token?encoded=:encodedParams HTTP/1.1
curl
example
Copy curl "https://api-eu.attraqt.io/search/${SEARCH_API_TOKEN}?encoded=%7B%22query%22%3A%22T-Shirt%22%2C%20%22options%22%3A%7B%22filter%22%3A%22price%20%3E%2010%22%7D%7D"
JavaScript example
Copy const token = SEARCH_API_TOKEN;
const params = encodeURIComponent(JSON.stringify({
query: 'T-shirt',
options: {
filter: 'price > 10'
}
}));
const response = await fetch(
`https://api-eu.attraqt.io/search/${token}?encoded=${params}`
);
if (response.ok) {
console.log(await response.json());
}