Cms: Option to replace the core search provider

Created on 31 Jan 2017  路  14Comments  路  Source: craftcms/cms

Created by: Scott Grogan ([email protected]) on 2015/04/01 21:57:24 +0000
Votes at time of UserVoice import: 52


Currently CraftCMS relies on a core SearchService component backed by the MySQL database. It would be wonderful to be able to replace this service with one backed by ElasticSearch, Lucene, or any other search provider.

enhancement

Most helpful comment

+1 Would love to see an Algolia driver for Craft CP!

All 14 comments

Great idea -- another 'having nice things' ;)

+1, since I don't find a button....??....ah....

+1 Would love to see an Algolia driver for Craft CP!

+100 :)

Need this!

_Replacing_ the core search provider is probably not necessary. Craft's search functionality is pretty tightly coupled with the architecture of its internal index. It'd be difficult to ensure/enforce that an external service would obey the same search syntax, indexing behaviors, and config options as Craft's native search provider, which could lead to confusion and support issues.

However, in Craft 3, it'll be simple enough add user-defined behaviors to components (e.g. ElementQuery classes). Such a Behavior could provide an alternate search method/filter that fetches a list of element IDs from an external provider and filters a query by those IDs.

+1 for Swiftype

@michaelrog we would most likely still do the query parsing, and hand a SearchQuery object off to the search driver. So the actual search syntax would remain consistent regardless of the search driver you鈥檙e using - it would just be up to the driver to support the SearchQuery as best as it can.

Hi All

Is this functionality still on your radar? I'm looking to replace the core search functionality with an in house Elasticsearch driver, but until support for 3rd party drivers is added I'm pretty dead in the water.

Thanks

@phillmorgan28 Definitely still something we鈥檙e thinking about... probably for 4.0.

Any update on this @brandonkelly @angrybrad?

Search on the orders screen and other entries is glacial. Our customer service agents are busting my balls on making it quicker.

If we can't make instant search quicker by replacing the core search provider with something of our choice (e.g. Algolia, which we use on the front-end) is there a way we can have more traditional static search as opposed to instant search?

E.g. when a customer service agent wants to search for an order or orders with a specific email ([email protected]) all they want is the results for [email protected], not something that is similar and even if they did, they don't want the list of results to dynamically change as they type.

I've raised this before, but something like the Magento 1.x sales orders screen which has static search and where you can search by attribute is a must for ecommerce. It allows you to quickly get a snap shot of orders with certain attributes.

E.g.: https://d.pr/i/PgJwDU

Say you have an issue with orders made between a certain date that are paid via PayPal and in NZD currency. There really is no way (that I'm aware of) that you can easily bring up such a list of orders.

@gojira32 We will be addressing it in the coming months ;)

@brandonkelly Addressing this via adding the ability to have static search with query building (like above Magento example) or by allowing replacement of the core search provider?

The former would be much more useful for the orders screen.

@gojira32 The former

to have advanced searching and attribute filtering would be great.

Often I have to export data out and then edit outside in Excel and then import back in using FeedMe.

In Commerce's products tab, there's not a way I can find to filter out by Enabled / Disabled products. Or Available To Purchase.

Thanks!

Was this page helpful?
0 / 5 - 0 ratings