Giter VIP home page Giter VIP logo

django-autocompleter's People

Contributors

ara818 avatar jakeway avatar jb076 avatar kdabiedeen avatar kfoxder avatar lucasbrambrink avatar matthewbillienyc avatar ryankuczka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

django-autocompleter's Issues

Pre-save / post-delete system does not account for save() failures

Currently, there is a pre-save signal that removes an object from the autocompleter, then a post save adds it back. This is to account for term changes on the object that would affect the autocompleter. However, if for some reason the save() on the object fails then the post-save never happens and the object is lost from the autocompleter.

We should update so that there is no pre-save() and all the data needed to remove an object from the AC is in redis and so the remove/add in the AC both happen on post_save.

Endless loop possible in alias map

this term: Macedonia GDP

with these aliases:
'Macedonia Denar' => 'MKD'
'MKD' => 'Macedonia Denar'
'Macedonia' => 'MKD'
'MKD' => 'Macedonia'

Will cause a endless loop.

Prevent double aliasing

Objects:
California Unemployment Rate
Cananda Unemployment Rate

Aliases:
California: CA
Canada: CA

Autocompleter returns: "canada unemployment rate" as option when searching for california

why? "calfiornia ur" which gets aliased to "ca ur" which gets aliased into "canada ur"

difference from django-completion

Hi, I'm the author of a similar project django-completion (I see you have a fork of it in your projects list)! I was wondering if there were any big differences in our implementations?

Single word search queries are inefficient

We do all these extra copies to handle intersection of multi-word search queries, even if we have 1 word. Need to devise a fast path for this common case that ignore unnecessary work

Faceted searches are inefficient

We do the facet intersection last after we do the initial search.

This makes it so a very broad search that returns a ton of results but is then narrowed down significantly via a facet is quite slow.

Instead, we should figure out how to better integrate the facet intersection with the core search so we don't do all this extra work copying around giant search result sets.

remove_all appears to not remove any items in the initial run through

remove_all() has 2 steps.

  1. remove things using their ID
  2. remove anything left over

Part 2 is there really only as a precaution, in case some weird ID changes cause us to lose track of an item.

However, It appears step 1) may not be doing anything due to an encoding issue, and so we effectively try to delete each item twice and succeed the second only with step 2)

We should fix this, but also we should create a way to turn off 2) for testing that step 1) actually works. As it is, even though we test remove_all() the bug the step 1) code is effectively hidden by the catch step 2) deletion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.