Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fulltext search on more types : on ex. cities, countries, up to organizations on display & alt name... #236

Open
mdutoo opened this issue Aug 10, 2015 · 1 comment

Comments

@mdutoo
Copy link

mdutoo commented Aug 10, 2015

Several solutions of increasing cost and usefullness:

1 by extending geo cache:

  • 20151009 DONE IN org city fulltext search in portal #277 copy mixin name or model type (@type) to allow to restrict search on it ex. cities (simple, almost done)
  • make its "geoarea" conf a generic list of such models, to allow to cache several different storage (or stored) models, ex. also NACE.
  • allow to search in several Datacore fields at once (ex. org display & alt name) by filling search tokens from all of them (requires more complex conf & batch replication of which several fields of several Models)
  • up to having several mongo collections, one per separate index, in order to allow to have separate lookup in ex. org display & alt name (even more complex)

BUT

  • this is still not well suited to changeable / not cold data such as orgs, because it will quickly be unable to return newly added data and return obsolete (newly deleted) ones ; unless more work is done to handle in realtime ex. new orgs (not that hard on portal side, in local event fashion) and deleted ones (far harder, either by suppl daily checks and still handling errors, or by remote event API & subscription yet to be developed).
  • apps other than the portal will never be able to use it, and will have to redo all of it according to their needs on their own. A workaround is for them to use dropdowns to select consecutively country, NUTS2/3, then city ; this works well for Turkey, maybe for other EU countries, but most probably not for France (too much levels AND cities).

2 or even reuse it on Datacore side:

BUT

  • it won't scale up => 2 Cache as a Service
    • to answering massive needs such as portal's unlogged home page first main feature (autocompletion on geoarea)
    • to handling outlier use cases: if a field is required to be searched fulltext only by a single app, it is overblown to make it a fulltext field, and this app should have its own fulltext-able cache (and possibly use the Datacore for that: maintain its own copy model with a single difference at storage level i.e. said field as fulltext => an idea for how to do Cache as a Service on Datacore side)
  • THIS ENDS UP REDOING THE WHEEL i.e. reimplementing our own fulltext search engine ! So let's not do that unless it stays very simple. => 3 reimplement on top of ex. Elastic Search

2 so make it available as an API-subscribable and configurable on demand service, as much as possible, typically using OCCIware

3 and go towards a clean archi:

  • not redo the wheel: reimplement the geo cache (out of the portal) on top of a best-ot-breed open search engine Elastic Search (TODO Q is being remote OK ?) (or even business-level cache à la Memcached ???) ; and develop said features, towards a universal Datacore fulltext search engine
  • let its configuration be Datacore Models and Mapping / Synchronization (Transformations) once it'll be developed, rather than adhoc. This way, it becomes a Datacore implementation over ex. Solr.
@mdutoo
Copy link
Author

mdutoo commented Aug 28, 2015

In v1.1, fulltext search should be added to all organization autocomplete fields (besides jurisdiction where it already works) for ease of use.

@mdutoo mdutoo changed the title Further fulltext search : on ex. cities, countries, up to organizations on display & alt name... Fulltext search on more types : on ex. cities, countries, up to organizations on display & alt name... Sep 1, 2015
@bobeal bobeal removed the v1.1 label Dec 3, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants