prmr / Creco

Recommendation System for Consumer Products
Apache License 2.0
6 stars 2 forks source link

Integrate Lucene Product search with our own product classes #5

Closed forgues closed 10 years ago

forgues commented 10 years ago
forgues commented 10 years ago

I have code for this issue under the "search" branch, which is integrated with a temporary "ProductVO" class for now. When our actual data objects are merged into the master branch, we should integrate the actual data objects to replace the temporary "ProductVO".

enewe101 commented 10 years ago

Gowri -- we have made a backend controller which is responsible for calling your search function. It will make the call inside the package ...creco.server in the class SearchService inside the method getProductSearchResult. Please define getProductSearchResult so that it calls your code and returns a ProductSerchResult instance. You will need to pull the latest from the Integration branch. But please don't work on the integration branch. Merge integration into your branch, and do the work there. Thanks!

mangalagb commented 10 years ago
enewe101 commented 10 years ago

Hi Gowri,

It looks like this isn't integrated to the Integration branch yet. Please do the following:

Note: Shuo is hooking up the front end, and needs this to be finished so that he can see the api exposed by the backend and the return types his code should expect.

If you need help, I think Gabriel would be in a position to offer some guidance.

When everything works, then checkout Integration, and merge in your (already merged) branch. This should be a clean fast-forward merge. If there are any conflicts it means there was a mistake made, so don't commit the merge, post here instead.

forgues commented 10 years ago

I'll be taking care of the merging into integration branch. I suggested two small changes to Gowri but I was waiting for her response before changing them, in case this was already discussed and agreed upon with others. Two small suggestions for the product search classes:

  1. Rename ProductSearchResult to ScoredProduct, or some other more general name, since more scores will be added to this object by the ranking logic.
  2. Remove ProductSearchResults (As it is, it seems to be a simple wrapper around a list, so we might as well directly return a List instead of wrapping the result into an object).

If you think this makes sense, I can make the changes and merge it into integration once I'm done.

enewe101 commented 10 years ago

That makes good sense to me! Thanks Gabriel!

asutcl commented 10 years ago

Please let me know if you change this because this will break my code. The fix will be simple enough but if you do more than change the name of the class a simple refractor call will not update how I handle the object.

forgues commented 10 years ago

Sorry I didn't see your message before committing the changes. The class renames broke your code but I fixed all compilation issues and fixed the unit test as well. All changes should be in integration branch right now. Let me know if the changes cause any problems.

forgues commented 10 years ago

Closing because integration is complete. Just reopen it if you have problems with what I merged into Integration branch. Improvements to the product search should be filed as a new issue anyways.

nishanthtgwda commented 10 years ago

Product Search isn't retreiving the full list of products. I am getting exactly one product for point shoot digital cameras. I discussed this with gowri today. Please recheck it once.

forgues commented 10 years ago

Could you describe exactly what you're doing? I just tested the integration branch as-is, but with my local data files. I typed "point shoot digital camera" and saw a few equivalence classes, of which "point & shoot digital cameras" contained 255 product results.

nishanthtgwda commented 10 years ago

searchProducts(eqClass, query); : This function , when I click humidifiers , is returning me an empty set. In the search window I do get 46 products(using professor's offline data set) , but when passed through the function , its returning an empty. The function is called in getRankedFeatureProducts(eqclass, query) in ca.mcgill.cs.creco.server. .

forgues commented 10 years ago

I still can't reproduce what you're seeing. When I type "humidifiers", I see the category result "Humidifier". I click on that and I see a list of 46 products, from "EVAP2" all the way to "MA1201". I placed a debug line in searchProducts(eqClass, query) and I see that every call to that function found 46 products. Are you sure you're up to date with the latest changes from the integration branch?

Note that if you're really up to date with integration, you should see the line "productSearch.queryProductsReturnAll(query, eqClass.getId())" in the method searchProducts (in SearchService.java).

nishanthtgwda commented 10 years ago

Yes I pulled in this afternoon, and I pulled in again now, seems like now its giving e a error before it reaches the query stage itself. This line: ProductSearchResult prodSearch = this.getProductSearchResult(eqClass, query); The prodSearch is returning me null values.

I placed a debug code at the end of searchProducts(eqClass, query) before the return. And it printed a null as well.

forgues commented 10 years ago

What file and line number is this?

nishanthtgwda commented 10 years ago

Ok I am sorry I realized the mistake. It was a mistake on my side, closing this issue. Sorry for the disturbance.