Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Improved Catalog Search Engine Listings (Schematic)


jhilgeman

Recommended Posts

It would be nice to see a better search engine in the next version. Currently the engine searches for keywords in titles and descriptions and there's no apparent ranking or relevancy system going. While it works somewhat, it doesn't work as well as it could. With a product database containing several thousand flavoring products that have keywords scattered left and right in descriptions, the search engine returns a lot of irrelevant results.

 

Some thoughts: Instead of defaulting to searching product titles and descriptions, how about searching a list of pieces, with increasing rank? Each piece/phase would have a different relevancy "worth" and would give more "ranking points" to a product. The products are then ranked by the number of points they received.

 

(One of my examples, specifically Phase 2, would require the ability to assign keywords and keyphrases to products.) For example purposes, let's say that someone searched for "Pure Vanilla Extract" without the quotes.

 

--- Phase 1 : Search in Titles ---

1) Search for titles containing ALL the search terms. i.e.:

- 100% Pure Vanilla Extract = would qualify

- Natural and Pure Vanilla Extract = would qualify

- Vanilla Pure Extract = would qualify

- Pure Vanilla Extract = would qualify

- Natural Vanilla Extract = would NOT qualify

- Vanilla = would NOT qualify

 

2) Assuming matches are returned for Step #1, rank them first by the density of the terms in the title. i.e.:

- Vanilla Pure Extract = 100% density

- Pure Vanilla Extract = 100% density

- 100% Pure Vanilla Extract = 75% density

- Natural and Pure Vanilla Extract = 60% density

 

3) Again, assuming matches for Step #1, and assuming there are some "ties" in density like the first two 100% matches, then rank by the order in which the terms appear in the title. i.e.:

- Pure Vanilla Extract = All terms present, 100% density, and in order

- Vanilla Pure Extract = All terms present, 100% density, but out of order

- Pure 100% Vanilla Extract = All terms present, less than 100% density, but in order

 

4) In the event that there's another tie in Step #3, an additional column containing "product priority" could be present, but this might not be necessary.

 

5) Product titles containing SOME keywords (products not qualifying in Step 1), but not all, could receive a point for every term they contain. Obviously, these would be listed at the bottom.

 

--- Phase 2 : Search in Keywords ---

6) Similar to Step #1, search for products containing all keywords in the keywords database/fields that I described earlier. Products containing the most keywords get the most ranking points, with keyPHRASES giving the most points (after all, if someone's searching for Vanilla Extract, a product containing a keyphrase of "Vanilla Extract" would be more relevant than another extract product that tastes funny when mixed with vanilla).

 

7) Apply density rankings as in Step #2. i.e. if Product 1 has 10 keywords/keyphrases, and Product 2 has 40 keywords/keyphrases, and both have 5 search term matches, then Product 1 would have 50% density, while Product 2 would only have 12.5% density.

 

8) Term order ranking, like Step #3, would be hard to implement for keywords, so it would be best to leave it out.

 

--- Phase 3 : Search in Description ---

Same concept as Phase 1, but lower point worth.

 

--- Phase 4 : Tally up the Points ---

 

First, products from Phase 1:

 

1. Products having all the search terms in their title (Step 1) would get 10 ranking points.

 

2. Products with 100% density would get 10 points, products with 50% density would get 5 points, etc...

 

3. (If needed) Products that had the search terms ordered correctly would get 1 point.

 

4. (If needed) Higher product priority would give an additional point for every product involved in the tie. (i.e. 4 products all have the same number of points at this point, so the highest-priority product gets 3 points, the next one gets 2 points, the next gets 1 point, and the 4th and lowest-priority product gets none)

 

5. Products with only SOME search terms in their titles receive 1 point for every term their titles contain. (Mint Vanilla Extract would get 2 points for "Vanilla" and "Extract") Ties in this step are resolved like Steps 2-4.

 

After Phase 1 Product-Point-Tallying is completed, all points given in the phase are multiplied by 3 (to indicate that Title relevancy is more important). Thus, a product with 21 points from Phase 1 receives 63 points. Now, products from Phase 2 (Keywords in the Database)...

 

Same Steps 1-5, except with keywords instead of titles, and no Step 3. All points given in this phase are multiplied by 2.

 

Phase 3 is the same as Phase 1, except with the product description instead of the title, and all points given are just that - no multiplication.

 

Add up the points for each product from Phase 1, 2, and 3, and you'll get the final Product-Points listing. Order that listing in descending order, and we'll get the most relevant listings first.

 

Please, everyone, feel free to critique the system and offer suggestions. I truly hope something like this goes into effect in the next release.

 

- Jonathan

Download osCommerce Order Editor v1.2 Here:

http://www.oscommerce.com/community/contributions,1435

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...