I have a large commodity dataset consisting of millions of commodites, where each commodity entity consists of commodity_name, commodity, and brand.


  • commodity_name is usually a long sentence such as "Furmax Office Chair Mid Back Swivel Lumbar Support Desk Chair, Computer Ergonomic Mesh Chair with Armrest (Black)".

  • commodity is usually a word saying what the commodity is, such as "chair"

  • brand is the brand of the commodity, such as Furmax.

My purpose is to, given a search query, return a small number (say 5) of most relevant commodities. What I do now is build a reverse-index and return top 5 commodites for a given query. However, I found that it usually did not return the correct commodities. For example, when I queried "iphone", it may return "iphone case" or "iphone charger". I understand the problem occurs due to the fact that "case" and "charger" may also exist in the reverse-index entry as "iphone". What should I do to address this issue? Thanks!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.