calpoly-csai / api

Official API for the NIMBUS Voice Assistant accessible via HTTP REST protocol.
https://nimbus.api.calpolycsai.com/
GNU General Public License v3.0
9 stars 4 forks source link

Fuzzy matching won't return multiple exact matches. #129

Open cameron-toy opened 4 years ago

cameron-toy commented 4 years ago

@adamperlin @mfekadu

Describe the bug So first, some good news (in a bug report!): accessing views works fine. I made an SQLAlchemy object to access the Professor/Section view and get_property_from_entity() works as expected.

The bad news is that I'm currently unable to use get_property_from_entity() to answer questions like "What sections does Dr. Khosmood teach?" even with modification.

The current get_property_from_entity() returns the closest match. I made a function _get_property_from_entity() that returns the full list of matches, but if I put in "Irene Humer" as the search term I only get one match, even though she teaches multiple sections.

How to recreate this behavior

See the code of the latest pull request. Run "test_view_access.py"

Expected behavior

print(db._get_property_from_entity(
    "section_name",
    ProfessorSectionView,
    "Irene Humer"
))

[(133, ['Irene ', Humer'], 'CPE 101_01), (133, ['Irene ', Humer'], 'CPE 203_03), (133, ['Irene ', Humer'], 'CPE 203_04), ... etc]

Screenshots Actual behavior:

Screenshot

Desktop (please complete the following information):

zpdeng commented 4 years ago

Some of the ProfessorSectionView data seems to be missing in the database session initialized with SQLAlchemy. It retrieves 69 rows of data instead of 339 available. Might be an issue with the MySQL View and needs to be updated?

cameron-toy commented 4 years ago

@zpdeng Great catch Allen. I believe that has something to do with the primary key column id not being unique for all the entries. I'll tell you when I reindex or change the primary key column and it should work then.

adamperlin commented 4 years ago

Hey sorry I didn't chime in earlier - I've been very busy with class this quarter. Is my help needed with this issue at all or did it get resolved?