Latest News: (loading..)
ArtcoInc

Search add-on Reviews

53 posts in this topic

Search add-on Reviews

While working on a new store, I've been exploring the different Search add-ons available. I hope that others may find this useful.

 

I looked at four different Search add-ons:

A) Store Search (BS)
   http://addons.oscommerce.com/info/9328

B) SiteSearch Plus v1.4
   http://addons.oscommerce.com/info/6351

C) SmartSuggest - Self-learning Ajax Search Suggestion    v1.0.3
   http://addons.oscommerce.com/info/8926

D) Twitter Typeahead Autocomplete Search v1.6
   http://addons.oscommerce.com/info/9351


All of these have support pages on the forum.

I installed these individually on a clean installation of osCommerce v2.3.4bs - Edge. The tests were run on the stock database. For comparison, I used the search phrase 'mic' in each of the tests.

All of these either enhance the stock Search box in the header, or replace it. If replaced, the new Search box can have the bootstrap column width adjusted in Admin, just like the stock one.


------------------------------------------------------------------------------------------------------------------+
                                                                           |      A      |         B        |        C       |      D      | 
========================================================================
Requires core file edits                                       |     No     |      Yes *      |     Yes      |     No     |
------------------------------------------------------------------------------------------------------------------+
# of hits searching for 'mic'                                 |     6 *      |        3         |      3 *       |      5      |
(using as-installed default settings)                    |               |                   |                  |              |
-------------------------------------------------------------------------------------------------------------------+
When clicking on a result, are you sent to the    | Product  | Advanced  | Advanced | Product |
Product page, or to Advanced Search Results   |               |req. 2 clicks|                  |              |
-------------------------------------------------------------------------------------------------------------------+
Shows Product Image in Search Results            |     No      |       No        |      Yes      |    Yes    |
------------------------------------------------------------------------------------------------------------------+
Shows Product Description in Search Results    |     No      |       No        |       No      |    Yes    |
------------------------------------------------------------------------------------------------------------------+
Can select what pages to include in Search       |    Yes     |        No       |        No      |    No     |
------------------------------------------------------------------------------------------------------------------+
Records Searched for Words                             |     No      |       No        |      Yes      |    No     |
------------------------------------------------------------------------------------------------------------------+
Emails Store Owner if Search Not Found           |      No     |       Yes       |       No      |     No    |
------------------------------------------------------------------------------------------------------------------+
Pretty ranking (1=best) (in my opinion)              |       3      |         4         |        2       |      1      |
========================================================================


Comments and thoughts:
-----------------------------------------------------------------------------------------

A) Store Search (BS)

post-327952-0-09091900-1472665934_thumb.jpg

Plug and Play. Highly configurable. I like the 'Search Results Highlight' feature. Changing the configuration can alter the number of search hits. Using the 'out of the box' configuration, this gave the most number of search hits:

1 category
3 products
2 'other' pages

If you want your Search to be able to include searching pages other than just products, this is the one.

-----------------------------------------------------------------------------------------

B) SiteSearch Plus

 

post-327952-0-10612800-1472665956_thumb.jpg

If your server has PHP in strict mode, there are additional edits needed in a file. This is mentioned on the support thread, but is not included in the downloaded package.

This is the only package that has the email option.

-----------------------------------------------------------------------------------------

C) SmartSuggest - Self-learning Ajax Search Suggestion

 

post-327952-0-69496100-1472665980_thumb.jpg

This is the only package that records the Searched for words. Personally, I find this feature very useful.

Changing the configuration can alter the number of search hits.

-----------------------------------------------------------------------------------------

D) Twitter Typeahead Autocomplete Search

 

post-327952-0-18457500-1472666001_thumb.jpg

Plug and Play. This is clearly the prettiest of the add-ons. There are *many* options one can adjust and configure. Using the 'out of the box' configuration, this gave the second highest number of search hits.

============================================================================

Final thoughts:

 

I like the search functions that allow the user to go directly to the product or page, without having to make a detour through Advanced_Search_Results.

 

If I could pick-and-choose features, I'd start with D, add the ability to select the searched pages from A, and the recording of the searched for words in C

Your results may vary. Only you can decide what is important for your shop.

HTH

Malcolm

bruyndoncx, Tsimi, tgely and 6 others like this

Share this post


Link to post
Share on other sites

I used A and then switched to D, but D doesn't search for categories, which I find useful for customers. So I alternate every few weeks, just because......

 

@@ArtcoInc Thanks for the review, very useful to know all the features of these addons

 

Mike

Share this post


Link to post
Share on other sites

I forgot to mention ...

 

C) SmartSuggest is not a bootstrap add-on out-of-the-box. I converted it myself to work with the Bootstrap version of osC.

 

All of the other add-ons are either all Bootstrap, or have a Bootstrap version.

 

Malcolm

Share this post


Link to post
Share on other sites

@@14steve14 Steve

Are you going to update the smart suggest addon to work with bootstrap? It may help others.

 

Excellent question..This has been discussed in the support thread for Smart Suggest

 

http://forums.oscommerce.com/topic/394763-smartsuggest-self-learning-ajax-search-suggestion/

 

 

I had to make two changes to get this to work with 2.3.4BS ...

 

1) As I mentioned in the review above, this add-on requires editing a bunch of files. The instructions said to modify:

 

/includes/modules/boxes/bm_search.php

 

Instead, I modified:

 

/includes/modules/content/header/cm_header_search.php

 

In this file, find:

      $search_box = '<div class="searchbox-margin">';
      $search_box .= tep_draw_form('quick_find', tep_href_link('advanced_search_result.php', '', $request_type, false), 'get', 'class="form-horizontal"');
      $search_box .= '  <div class="input-group">' .
                          tep_draw_input_field('keywords', '', 'required placeholder="' . TEXT_SEARCH_PLACEHOLDER . '"', 'search') . '<span class="input-group-btn"><button type="submit" class="btn btn-info"><i class="fa fa-search"></i></button></span>' .
                      '  </div>';
      $search_box .=  tep_hide_session_id() . '</form>';
      $search_box .= '</div>';

and replace with:

      $search_box  = '<div class="searchbox-margin">';
      $search_box .= tep_draw_form('quick_find', tep_href_link('advanced_search_result.php', '', $request_type, false), 'get', 'class="form-horizontal" id="frmSearch"');

      $search_box .= '  <div class="input-group">';
      $search_box .=      tep_draw_input_field('keywords', '', 'id="txtSearch" onkeyup="searchSuggest(event);" autocomplete="off" required placeholder="' . TEXT_SEARCH_PLACEHOLDER . '"' , 'search');

      $search_box .= '    <div id="smartsuggest" ></div>';
      $search_box .=      tep_draw_hidden_field('search_in_description', '1');

      $search_box .= '    <span class="input-group-btn">' ;
      $search_box .= '      <button type="submit" class="btn btn-info">' ;
      $search_box .= '        <i class="fa fa-search"></i>' ;
      $search_box .= '      </button>' ;
      $search_box .= '    </span>' ;

      $search_box .= '  </div>';
      $search_box .=    tep_hide_session_id() . '</form>';
      $search_box .= '</div>';

      // MOD: BOF - SmartSuggest
      if (SMARTSUGGEST_ENABLED != 'false') {
        require(DIR_WS_CLASSES . 'smartsuggest.php');
        $smartsuggest = new smartsuggest();
        $smartsuggest->output($data);
      }
      // MOD: EOF - SmartSuggest

2) /admin/stats_keywords_searched.php  is a new file included in the package. It was written for osc 2.2. I had to re-write it to work with osC 2.3. Here's the new file:

<?php
/*
  $Id: stats_keywords_searched.php,v 1.29 2013/10/04 22:50:52 fur Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');
  require(DIR_WS_INCLUDES . 'template_top.php');
 
  $count_by = $_GET['count_by'] ? $_GET['count_by'] : 'newest';
  $date_from = $_GET['date_from'] ? $_GET['date_from'] : '';
  $date_to = $_GET['date_to'] ? $_GET['date_to'] : date('Y-m-d');

?>

<link rel="stylesheet" type="text/css"  href="includes/javascript/spiffyCal/spiffyCal_v2_1.css">
<script type="text/javascript" src="includes/javascript/spiffyCal/spiffyCal_v2_1.js"></script>

<script  type="text/javascript"><!--
  var dateFrom = new ctlSpiffyCalendarBox("dateFrom", "filter", "date_from", "btnDate1", "<?php echo $date_from; ?>", scBTNMODE_CUSTOMBLUE);
  var dateTo = new ctlSpiffyCalendarBox("dateTo", "filter", "date_to", "btnDate2", "<?php echo $date_to; ?>", scBTNMODE_CUSTOMBLUE);
//--></script>

  <div id="spiffycalendar" class="text" style="z-index:100"></div>

  <table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
            <td class="pageHeading" align="center">

<?php
              echo tep_draw_form('filter', FILENAME_STATS_KEYWORDS_SEARCHED, '', 'get');
?>

              <table style="border: 1px dashed black;">
                <tr>
                  <td class="main">Count By:</td>
                  <td class="main" colspan="2">

<?php
                    echo '<label><input type="radio" name="count_by" value="newest" ' . ($count_by == 'newest' ? 'CHECKED ' : '') . 'onchange="this.form.submit();"/> Newest</label>';
                    echo '<label><input type="radio" name="count_by" value="keywords" ' . ($count_by == 'keywords' ? 'CHECKED ' : '') . 'onchange="this.form.submit();"/> Keywords</label>';
                    echo '<label><input type="radio" name="count_by" value="customers_id" ' . ($count_by == 'customers_id' ? 'CHECKED ' : '') . 'onchange="this.form.submit();"/> Customer</label>';
                    echo '<label><input type="radio" name="count_by" value="ip" ' . ($count_by == 'newest' ? 'ip ' : '') . 'onchange="this.form.submit();"/> IP</label>';

?>
                  </td>
                </tr>

                <tr>
                  <td class="main">Date:</td>
                  <td class="main" colspan="2">
                    <script language="javascript">dateFrom.writeControl(); dateFrom.dateFormat="yyyy-MM-dd";</script>
                    to
                    <script language="javascript">dateTo.writeControl(); dateTo.dateFormat="yyyy-MM-dd";</script>
                  </td>
                </tr>

                <tr>
                  <td class="main">Pages:</td>
                  <td>
<?php
                    foreach(range(1,30) as $i)
                      $pages_options[] = array('id' => $i, 'text' => '>=' . $i);
                      echo tep_draw_pull_down_menu('pages', $pages_options, $_GET['pages'], 'onchange="this.form.submit();"');
?>

                  </td>
                  <td align="right">
                    <?php echo tep_image_submit('button_search.gif', 'Search'); ?>
                  </td>
                </tr>
              </table>
<?php
              echo '</form>';
?>
            </td>
          </tr>
        </table>

      </td>
    </tr>
  </table>

  <table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
      <td valign="top">
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr class="dataTableHeadingRow">
            <td class="dataTableHeadingContent">No.</td>

<?php

            if ($_GET['keywords'] || $_GET['customers_id'] || $_GET['ip'])
              $count_by = 'newest';
                
              switch($count_by){

                case 'keywords':
                  $headings = array(TABLE_HEADING_KEYWORDS, TABLE_HEADING_NUM_RESULTS, TABLE_HEADING_LAST_SEARCHED_DATE, TABLE_HEADING_NUM_SEARCHED);
                  break;

                case 'customers_id':
                  $headings = array(TABLE_HEADING_CUSTOMERS, TABLE_HEADING_LAST_SEARCHED_DATE, TABLE_HEADING_LAST_SEARCHED_DATE, TABLE_HEADING_NUM_SEARCHED);
                  break;

                case 'ip':
                  $headings = array(TABLE_HEADING_IP, TABLE_HEADING_LAST_SEARCHED_DATE, TABLE_HEADING_LAST_SEARCHED_DATE, TABLE_HEADING_NUM_SEARCHED);
                  break;

                case 'newest';
                  $headings = array(TABLE_HEADING_KEYWORDS, TABLE_HEADING_NUM_RESULTS, TABLE_HEADING_CUSTOMERS, TABLE_HEADING_IP, TABLE_HEADING_PAGES, TABLE_HEADING_PRODUCT_IDS, TABLE_HEADING_ORDER_ID, TABLE_HEADING_DATE_SEARCHED);
                  break;

              }

              foreach($headings as $heading) {

?>
                <td class="dataTableHeadingContent">
                  <?php echo $heading; ?>
                </td>

<?php
              }
?>

          </tr>

<?php

          if (isset($_GET['page']) && ($_GET['page'] > 1))
            $rows = $_GET['page'] * MAX_DISPLAY_SEARCH_RESULTS - MAX_DISPLAY_SEARCH_RESULTS;
                              
          if ($_GET['keywords']) {
            $where_str = "where keywords = '" . tep_db_input($_GET['keywords']) . "' ";
          } elseif ($_GET['customers_id']) {
            $where_str = "where customers_id = '" . tep_db_input($_GET['customers_id']) . "' ";
          } elseif ($_GET['ip']) {
            $where_str = "where ip = '" . tep_db_input($_GET['ip']) . "' ";
          } else {
            $where_str = "where 1 ";
          }
                
          switch($count_by){
            case 'newest':
              $select_str = "select * ";
              $from_str = "from " . TABLE_SEARCHED_KEYWORDS . " ";
              $order_by_str = "order by date_added desc ";
              $columns = array('keywords', 'number_of_results', 'customers_id', 'ip', 'pages', 'products_ids', 'orders_id', 'date_added');
              break;


            default:
              if($count_by == 'keywords'){
                $select_str = "select keywords, number_of_results, date_added, count ";
                $columns = array('keywords', 'number_of_results', 'date_added', 'count');
              }else{
                $select_str = "select $count_by, keywords, date_added, count ";
                $columns = array($count_by, 'keywords', 'date_added', 'count');
              }

              $from_str = "from " . TABLE_SEARCHED_KEYWORDS . " sk right join (select $count_by as group_$count_by, count(*) as count, max(date_added) as last_date from " . TABLE_SEARCHED_KEYWORDS . " GROUP BY $count_by) skg on sk.$count_by = skg.group_$count_by and sk.date_added = skg.last_date ";
              $where_str .= "and $count_by is not null ";
              $order_by_str = "order by count desc ";
              break;

          }
                
          if ($_GET['date_from'])
            $where_str .= "and date_added >= '" . tep_db_input($_GET['date_from']) . "' ";

          if ($_GET['date_to'])
            $where_str .= "and date_added <= '" . tep_db_input($_GET['date_to']) . " 23:59:59' ";
                
          if ($_GET['pages'] > 1)
            $where_str .= "and (length(pages) - length(replace(pages, ',', '')) >= " . ((int)$_GET['pages'] - 1) . ") ";
               
          $searched_keywords_query_raw = $select_str . $from_str . $where_str . $order_by_str;

          $searched_keywords_split = new splitPageResults($_GET['page'], MAX_DISPLAY_SEARCH_RESULTS, $searched_keywords_query_raw, $searched_keywords_query_numrows);
          $searched_keywords_query = tep_db_query($searched_keywords_query_raw);
          while ($searched_keywords = tep_db_fetch_array($searched_keywords_query)) {
            $rows++;

?>

          <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" <?php if($count_by != 'newest'){ ?>onclick="document.location.href='<?php echo tep_href_link(FILENAME_STATS_KEYWORDS_SEARCHED, tep_get_all_get_params() . $count_by . '=' . $searched_keywords[$count_by], 'NONSSL'); ?>'"<?php }?>>

            <td class="dataTableContent"><?php echo str_pad($rows, 3, '0', STR_PAD_LEFT); ?></td>

<?php

              foreach($columns as $column) {
                $column_text = $searched_keywords[$column];
                  if($column == 'keywords') {
                    $column_text = '<a href="' . tep_href_link('../advanced_search_result.php', 'keywords=' . $column_text, 'NONSSL') . '" target="_blank">' . $column_text . '</a>';
                  } elseif($column == 'customers_id') {
                    $customer_query = tep_db_query("select customers_id, customers_firstname, customers_lastname from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$column_text . "'");
                    $customer = tep_db_fetch_array($customer_query);
                    $column_text = '<a href="' . tep_href_link(FILENAME_CUSTOMERS, 'action=edit&cID=' . $customer['customers_id']) . '" target="_blank">' . $customer['customers_firstname'] . ' ' . $customer['customers_lastname'] . '</a>';
                  } elseif($column == 'ip') {
                    $column_text = '<a href="http://ipshark.net/?domain=' . $column_text . '" target="_blank">' . $column_text . '</a>
                                    <a href="http://www.infosniper.net/index.php?ip_address=' . $column_text . '" target="_blank">' . tep_image(DIR_WS_ICONS . 'preview.gif', 'Location Map of IP') . '</a>';
                  }

?>

            <td class="dataTableContent"><?php echo $column_text; ?></td>

<?php
              }
?>

          </tr>

<?php
          }
?>

        </table>
      </td>
    </tr>

    <tr>
      <td colspan="3">
        <table border="0" width="100%" cellspacing="0" cellpadding="2">
          <tr>
            <td class="smallText" valign="top">

<?php
              echo $searched_keywords_split->display_count($searched_keywords_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $_GET['page'], TEXT_DISPLAY_NUMBER_OF_KEYWORDS);

?>

            </td>
            <td class="smallText" align="right">

<?php
              echo $searched_keywords_split->display_links($searched_keywords_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $_GET['page'], tep_get_all_get_params(array('pages')));
?>

            </td>
          </tr>
        </table>
      </td>
    </tr>

<?php
    if ($_GET['keywords'] || $_GET['customers_id'] || $_GET['ip']) {
?>

    <tr>
      <td>
        <a href="<?php echo tep_href_link(FILENAME_STATS_KEYWORDS_SEARCHED, tep_get_all_get_params(array('keywords', 'customers_id', 'ip'))); ?>">
          <?php echo tep_image_button('button_back.gif', 'Back'); ?>
        </a>
      </td>
    </tr>

<?php
    }
?>

  </table>


<script type="text/javascript">
$(document).ready(function(){
  $('td.dataTableContent a').click(stopPropagation);
});
function stopPropagation(e){
  e.stopPropagation();
}
</script>


<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Other than these two changes, install the package as per the instructions.

 

Now, there is one *tiny* flaw in this adaptation ...

 

post-327952-0-52271200-1472835716_thumb.jpg

 

There is a single pixel dot just below the Search box. This is created by this line in /includes/modules/content/header/cm_header_search.php:

$search_box .= '    <div id="smartsuggest" ></div>';

I can't remove this line, or the function doesn't work. To change the div's color in CSS would change other things too. I think that most people won't even see it, so I've not tried to hide it.

 

HTH

 

Malcolm

valquiria23 likes this

Share this post


Link to post
Share on other sites

Excellent work.
This work adds significant value to the community.
It would be nice to do it with other issues.
Congratulations!!!!

 

Valqui

Share this post


Link to post
Share on other sites

In a conversation with @@auzStar, we were discussing a potential issue with having multiple different search functions in a single store. For example, you may have a search box in the Header/NavBar, a search box in either the left/right column, and/or an Advanced Search link in the Header/NavBar. If each of these Search functions uses a different Search function (for example, one searches files, like StoreSearch BS, and the others do not), there's a good chance that they may return different results.

 

One line of thinking is that given a certain search expression, all search functions within a store should return the same results.

 

The other line of thinking is that if we only give the customer one search function, they will only get one result, and they will not be aware of any other possible search results.

 

If we want to include additional searchable areas, such as 'Categories' and 'Files', we'd have to either substitute a new Search function, or modify the 'core' function.

 

While @@auzStar and I have discussed this at length, I'd like to get some feedback from the forum. The question is this ...

 

What are your thoughts on the search results matching anyway, in regards to the search results in the drop down list matching the standard quick search results. i.e. if you have an autocomplete search that also finds the information pages you mention above, would the standard quick search also find these pages. I was wondering what your thoughts were on the autocomplete list search results matching up (or not matching up) with the standard quick search results, in other words if you had no autocomplete function would quick search find those information pages?

 

Comments?

 

Malcolm

Edited by ArtcoInc

Share this post


Link to post
Share on other sites

Site search means site search but has size limits with autocomplet results. In site search the images are supernumerary between text results. If someone search something means that wants something more exactly and more easily. I dont want to say that images not important yes they are but not in autocomplet dropdown fields.

Lets see an example. Someone call me on phone that he wants something. I say him type the following text into the site search box: xyz. The site search drop down 4 same images with exact different product names. What does he choose? He selects the text where he finds what he wanted. If we use images in search maybe helps but I think use instead streamlined icons for grouping or mark informations only. Less space and more benefit.

Share this post


Link to post
Share on other sites

The question is more about whether or not it matters that the search results in the autocomplete drop down list differ to search results using the "quick search" bar and search results using "advanced search". For example, if you have an autocomplete list containing results for categories, site pages etc (as well as products) but then the customer becomes aware that there is an "advanced search" option and they use it because it allows them to narrow the search using the provided filters. In this case the search results won't contain categories, site pages etc. This also applies to the "quick search" bar if they hit enter (or click the magnify glass) ignoring the drop down list (or they may not even be aware that a drop down list will appear due to lag or they get impatient waiting for it to load).

 

So the question is what are you're thoughts on the importance of all the different search options available in the store that give different results to the drop down list.

 

This discussion came about because Malcolm inquired as to whether I would be including (in Twitter Typeahead search add-on) the ability to search categories and site pages etc (like some of the other autocomplete search add-ons) as opposed to just searching products. My initial response to Malcom's query was:

That is why I designed my autocomplete search around the osCommerce search functions. My autocomplete search uses the same search algorithm as osC does, so what you see in the list is what you see in standard results when using the quick search bar. This is the whole point, in my opinion anyway, to give customers quick results (in a drop down list), same as what they would actually see if they had used the quick search bar to perform the search.

 

cheers

Share this post


Link to post
Share on other sites

so what you see in the list is what you see in standard results when using the quick search bar. This is the whole point, in my opinion anyway, to give customers quick results (in a drop down list), same as what they would actually see if they had used the quick search bar to perform the search.

Agreed.  I think it's better that the functionality being consistent throughout the site so that customers do not need to spend too much time on learning how to use your site.

Edited by Moxamint

Share this post


Link to post
Share on other sites

Site search means site search but has size limits with autocomplet results. In site search the images are supernumerary between text results. If someone search something means that wants something more exactly and more easily. I dont want to say that images not important yes they are but not in autocomplet dropdown fields.

 

Lets see an example. Someone call me on phone that he wants something. I say him type the following text into the site search box: xyz. The site search drop down 4 same images with exact different product names. What does he choose? He selects the text where he finds what he wanted. If we use images in search maybe helps but I think use instead streamlined icons for grouping or mark informations only. Less space and more benefit.

@@Gergely

 

Hi Gergely I see this differently, though.  Customer's search result could turn out a big listing of items sharing similar description when the products themselves may look very differently.  Showing thumbnails in the drop down will be very helpful in this case.  I guess it all depends on what you sell.

 

Regards, Eddy

Share this post


Link to post
Share on other sites

@@Moxamint

 

Agreed.  I think it's better that the functionality being consistent throughout the site so that customers do not need to spend too much time on learning how to use your site.

 

We try to inform and educate our customers. Thus, we have a lot of information on the Category pages, as well as other pages such as Reports, FAQs, White Papers, etc. I see it as extremely beneficial if these pages were searchable.

 

The question stated above is: Is it important that the Typeahead search drop-down return *only* the same results as Quick Search, or can it offer additional search results? While it would be *nice* if Quick Search and Advance Search were able to search these other pages, that won't happen without core changes to the stock search function. As much as I would love to see the stock Search function updated to search these other pages, I don't see that happening soon. And since core changes are 'not advised', the 'best' remaining solution (in my opinion) would be that the Typeahead search drop-down offer the additional search results, even if they don't match up with the Quick Search results.

 

As I stated in my conversation with @@auzStar

 

... when I'm looking for something on a site, I look for the Search Box near the top of the page. As a customer, I probably don't know that there may be different ways to search, or that 'advanced search' options are available. So, I accept whatever results are returned from the above mentioned Search Box. If I don't find what I'm looking for, I may try different search words until I find what I'm looking for, or give up and leave.

 

So, if I type in 'thermal protection', I would want the Search results to show me the Report or Categories page that uses that expression, even though it is not an expression used in a product Name, product Model, or product Description.

 

(my 2 cents)

 

Malcolm

Share this post


Link to post
Share on other sites

so if you modualarize the (advanced)search page, you can plugin whatever you want searched ?

auzStar, ArtcoInc and burt like this

Share this post


Link to post
Share on other sites

@@bruyndoncx

so if you modualarize the (advanced)search page, you can plugin whatever you want searched ?

 

I wish! Anyone willing and capable of taking this on?

 

Malcolm

Share this post


Link to post
Share on other sites

Yes.  All pages are due to be modularized.

 

Need more help from developers (time, code) and non-developers (time, cash) to make those changes more quickly.  

Help is hard to get.

Share this post


Link to post
Share on other sites

New version of Store Search is available :

v1.3 - 23/09/2016 - by milerwan

  • Display Image or Icon for product search result (set in admin)
  • Ajustable product image width for mobile/tablet/tablet+/desktop devices
  • Additional/optional search field Keywords into search frame (needs Header Tags SEO v3.x addon) : Very POWERFUL option!
  • Extended number of result entries (total 30 instead of 15) : categories (15 -> 22) + products (5 -> 7) + more results (1)
  • Fix highlight name crash in case of slash character use
  • Mobile & Tablet css width fix improved (automatic switching for mobile and tablet horizontal/vertical size)
  • Add french translation

Store Search with Image (BS) addon is available from this link : http://addons.oscommerce.com/info/9504

I think this version with product picture can interest many members. ;)

post-136115-0-20311400-1474720892_thumb.jpg

Edited by milerwan

Share this post


Link to post
Share on other sites

@ArtcoInc Malcolm....do you still have these search modules set up somewhere, where you can easily turn them on and off?    I just had an interesting conversation with a customer about our search function which didn't product any results when they didn't use a space in the appropriate spot....for example if you're looking for "Marine Flake" fish food on my site and entered "marineflake" it doesn't give you any results.  I know it's looking for the full term as a single word and can't find it since it doesn't exist and I get that but it's not very smart.   Just for the heck of it I tried it in google...the search engine that everyone is being educated to use and likely expect all searches to work the same and as you might expect google doesn't have an issue with it.  "marineflake" will give you the expected results.  So I'm left wondering if any of the available osC search modules might work in the same way as google when users don't add any spaces.  Just wondering if you or anyone else reading this would happen to know?

Dan

Share this post


Link to post
Share on other sites

Posted (edited)

8 minutes ago, Dan Cole said:

So I'm left wondering if any of the available osC search modules might work in the same way as google when users don't add any spaces.  Just wondering if you or anyone else reading this would happen to know?

Dan

 

I coded in a tag based search function into Edge.  IIRC you have an input box on the product adding/editing page in admin which allows you to add keywords (ostensibly for SEO, but we all know that Keywords are useless for SEO purposes)...

So, on each product, add in keywords, then IIRC turn on the SEO keywords module and set it to search only.  I think.  ANd then these "seo" keywords are used as an internal (site) search engine...

Alternatively, Fuzzy:  29DoC, Day 16

Edited by burt

Share this post


Link to post
Share on other sites

@burtThanks for the reply Gary....as you know I have your fuzzy search.   I actually tried it too but no joy.   Unfortunately I'm not certain if I have it installed properly since it's not clear to me what exactly it does.  I do know that the additional field is in the database, is populated and that the required change to advanced search results is in place as is the fuzzy module but other than that I'm sure how to test it.   On a proper install, should it solve the missing space issue?

Dan

Share this post


Link to post
Share on other sites

How the heck does one now do an @Dan Cole - ahhhh, you have to now type it.

So far as I recall, you'd need to set the Fuzzy thing works best  when the name is long and the search term is as long (or shorter).

Matrex:  matches Matrox

Mat: matches Matrox

Matrexitron: matches nothing

Try the Keywords system instead.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now