> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # Method name: filter() # Method package: wixSearch # Method menu location: wixSearch --> filter # Method Link: https://dev.wix.com/docs/velo/apis/wix-search/filter.md # Method Description: Creates a filter builder for building search filters. The `filter()` function is used for creating compound filters that are applied to a search using the `and()`, `or()`, and `not()` filtering functions. You do not need the `filter()` function for applying most filtering functions (such as `eq()` or `gt()`) to a search. Instead you can add [`WixSearchBuilder`](wix-search.WixSearchBuilder.html) filtering functions directly to your search. The `filter()` function creates a [`WixSearchFilterBuilder`](wix-search.WixSearchFilterBuilder.html) object, which contains functionality for creating compound filters for your site search. The following describes a typical filter builder flow: 1. Create a `WixSearchFilterBuilder` using the `filter()` function. 1. Create a `WixSearchFilter` by chaining a single `WixSearchFilterBuilder` filtering function, such as `eq()` or `gt()`, to the filter builder. You cannot chain more than 1 filtering function to a `WixSearchFilterBuilder`. 1. Do one of the following: + Create more filters: Pass one or more `WixSearchFilters` as parameters to an `and()`, `or()`, or `not()` `WixSearchFilterBuilder` function to create a new `WixSearchFilter`. For example, `newFilter = wixSearch.filter().or(filter1, filter2)`. + Refine a search: Pass one or more `WixSearchFilters` as parameters to an `and()`, `or()`, or `not()` `WixSearchBuilder` function to refine a search. For example, `newSearchBuilder = wixSearch.search().or(filter1, filter2)`. Note that only some fields can be filtered. Check which fields can be filtered in the supported schemas for each [`documentType`](wix-search.WixSearchBuilder.html#documentType). # Method Code Examples: *** Note: do not assume any prop names or enum values other than the ones in the example. ## Create a filter builder ```javascript import wixSearch from 'wix-search'; // ... let filterBuilder = wixSearch.filter(); ``` ## Create a filter ```javascript import wixSearch from 'wix-search'; // ... let filterBuilder = wixSearch.filter(); let myFilter = filterBuilder.eq("inStock", true); ``` ## Create multiple search filters and add them to a search ```javascript import wixSearch from 'wix-search'; // ... const filterBuilder = wixSearch.filter(); const gtJanFilter = filterBuilder.gt("lastActivityDate", "2020-01-01T00:00:00.000Z"); const ltFebFilter = filterBuilder.lt("lastActivityDate", "2020-02-01T00:00:00.000Z"); const gtAprilFilter = filterBuilder.gt("lastActivityDate", "2020-04-01T00:00:00.000Z"); const ltMayFilter = filterBuilder.lt("lastActivityDate", "2020-05-01T00:00:00.000Z"); const januaryFilter = filterBuilder.and(gtJanFilter, ltFebFilter); const aprilFilter = filterBuilder.and(gtAprilFilter, ltMayFilter); const dateFilter = filterBuilder.or(januaryFilter, aprilFilter) const viewFilter = filterBuilder.gt("viewCount", 200) wixSearch.search(phrase) .documentType("Forum/Content") .and(dateFilter, viewFilter) .find() .then( (results) => { if(results.documents.length > 0) { let documents = results.documents; } else { console.log("No matching results"); } }) .catch( (error) => { console.log(error); }); ``` ---