Jump to content



Photo
- - - - -

Search add-on Reviews


  • Please log in to reply
20 replies to this topic

#1   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 31 August 2016 - 18:06

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)

Attached File  Screen Capture - Search - A1.JPG   42.95KB   3 downloads

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

 

Attached File  Screen Capture - Search - B1.JPG   41.83KB   4 downloads

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

 

Attached File  Screen Capture - Search - C1.JPG   31.36KB   4 downloads

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

 

Attached File  Screen Capture - Search - D1.JPG   54.76KB   3 downloads

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



#2   greasemonkey

greasemonkey
  • Members
  • 1,044 posts
  • Real Name:Scott
  • Gender:Male

Posted 31 August 2016 - 18:26

@ArtcoInc I use D... and it's the bomb.....



#3   Dan Cole

Dan Cole
  • Community Sponsor
  • 1,640 posts
  • Real Name:Dan Cole
  • Gender:Male
  • Location:Ontario, Canada

Posted 31 August 2016 - 20:18

@ArtcoInc Good review Malcolm.  Very useful.

 

Dan



#4   Tsimi

Tsimi
  • Members
  • 1,752 posts
  • Real Name:Lambros
  • Gender:Male
  • Location:Japan

Posted 31 August 2016 - 22:30

@ArtcoInc

Very nice review. Well done.

#5   Mikepo

Mikepo
  • Members
  • 271 posts
  • Real Name:Mike
  • Gender:Male
  • Location:GB

Posted 01 September 2016 - 11:35

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



#6   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 01 September 2016 - 15:28

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



#7   14steve14

14steve14
  • Members
  • 4,361 posts
  • Real Name:Steve
  • Gender:Male
  • Location:Dorset UK

Posted 02 September 2016 - 08:07

@ArtcoInc

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


REMEMBER BACKUP, BACKUP AND BACKUP

 

Find information about the bootstrap community version here

 

Success is the ability to go from one failure to the next without any loss of enthusiasm


#8   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 02 September 2016 - 17:07

@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.oscomm...rch-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 ...

 

Attached File  Screen Capture - Search - C2.JPG   14.57KB   0 downloads

 

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



#9   valquiria23

valquiria23
  • Members
  • 66 posts
  • Real Name:Valquiria Fernandez
  • Gender:Female

Posted 02 September 2016 - 22:11

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

 

Valqui



#10   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 17 September 2016 - 01:32

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, 17 September 2016 - 01:34.


#11   Dan Cole

Dan Cole
  • Community Sponsor
  • 1,640 posts
  • Real Name:Dan Cole
  • Gender:Male
  • Location:Ontario, Canada

Posted 17 September 2016 - 02:24

@ArtcoInc  Here are some best practice tips for your consideration...

 

24 best practice tips for ecommerce site search

 

To answer your question I would favor one very robust search routine that would incorporate many of these best practice tips.

 

Dan



#12   Gergely

Gergely

    Json Juggler

  • Community Team
  • 2,112 posts
  • Real Name:Gergely Tóth
  • Gender:Male
  • Location:Budapest

Posted 17 September 2016 - 11:52

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.


Next PHP changes will kill the current codes on the following years. We should do programing for the future and never stick in the present.

My addons: Conversion Tools::Hungarian Translation::Email Templates::URL redirection
 
Development Works: Setup Languages::Email Templates::Languages from ini files::Parcel Shops::Facebook App
 
What core codes have been complained?

In orders table payment_methods value would be better if payment class name used than payment's language name.
In the orders class we found order status does not contains $order->info['orders_status'] but instead there is $order->info['orders_status_name'], and that property is language dependant.
We can not identify in order the customer language.


#13   auzStar

auzStar
  • Members
  • 535 posts
  • Real Name:Dominic C.
  • Gender:Male
  • Location:Australia

Posted 18 September 2016 - 03:08

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


My Add-ons
Advanced Cache Control Tool for osCommerce 2.3.x (non-bootstrap) Download Support
Ajax Product Listing for osC 2.3.4 (bootstrap) Download Support
Category New Products Carousel for osC 2.3.4 (bootstrap) Download Support
Category Popular Products Carousel for osC 2.3.4 (bootstrap) Download Support
Customer Testimonials for osCommerce 2.3.4 (bootstrap and non-bootstrap) Download Support
Front Page New Products Carousel for osC 2.3.4 (bootstrap) Download Support

Index Nested - Product Listing for osC 2.3.4 (bootstrapDownload Support
Match Categories in Search Results for osCommerce versions 2.3.x (non-bootstrap) Download Support
Modular Category Page for osC 2.3.4 (bootstrap)
Download Support

NEW Australia Post Shipping Modules for osCommerce 2.3.x (non-bootstrap) Download Support
NEW Equal Height Module for osC 2.3.4 (bootstrapDownload Support
Products Low Stock Report for osC 2.3.x (bootstrap and non-bootstrap) Download Support
Twitter Typeahead Autocomplete Search for osCommerce 2.3.4 (bootstrap and non-bootstrap)
Download Support

Upcoming Products Modules for osC 2.3.4 (bootstrap) Download Support

 
Assisted Add-ons
Scroll Boxes for osCommerce 2.3.x (bootstrap and non-bootstrap) Download Support
 
Bootstrap Add-ons created by other members
osCommerce Bootstrap Addons and Code


#14   Moxamint

Moxamint
  • Members
  • 83 posts
  • Real Name:Ai-Teh Eddy Lin
  • Gender:Male
  • Location:Taiwan (a country, NOT part of China)

Posted 18 September 2016 - 08:11

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, 18 September 2016 - 08:14.


#15   Moxamint

Moxamint
  • Members
  • 83 posts
  • Real Name:Ai-Teh Eddy Lin
  • Gender:Male
  • Location:Taiwan (a country, NOT part of China)

Posted 18 September 2016 - 13:21

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



#16   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 20 September 2016 - 16:33

@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



#17   bruyndoncx

bruyndoncx

    osCommerce Teenager

  • Members
  • 3,770 posts
  • Real Name:Carine Bruyndoncx
  • Gender:Female
  • Location:Belgium/ Antwerp/ Turnhout/ Arendonk

Posted 20 September 2016 - 19:14

so if you modualarize the (advanced)search page, you can plugin whatever you want searched ?
KEEP CALM AND CARRY ON
FYI Just upgraded from PHP 5.3 to PHP 5.5  and saw big performance improvement.
But be aware php 5.5 is more strict about things.
UTF8-without BOM, no extra spaces allowed at the beginning or end of your php file, or your redirects wont work.
No double declarations of functions allowed - used to slip through the cracks ...

#18   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 20 September 2016 - 19:44

@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



#19   ArtcoInc

ArtcoInc
  • Members
  • 673 posts
  • Real Name:Malcolm

Posted 20 September 2016 - 23:13

@burt

 

Are there any plans to modualarize search?

 

Malcolm



#20   burt

burt

    I drink and I know things

  • Community Team
  • 12,438 posts
  • Real Name:G Burton
  • Gender:Male
  • Location:UK/DEV/on

Posted 21 September 2016 - 11:20

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.


This is a signature that appears on all my posts.  It is not specifically aimed at you.

 

IF YOU MAKE A POST REQUESTING HELP...please state the exact version of osCommerce that you are using. THANKS
 
If you are still on the old style osCommerce, it is time to move to Responsive.