Announcement

Collapse
No announcement yet.

Miva Search

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Miva Search

    First, I am a big fan of the new Miva Search. It let us replace the Nextopia search product without missing a beat. Now, my Miva search results are always in sync with our site inventory, and customers can order directly from the search results screen.

    Having said that, Miva needs to rethink the way it handles two-word searches. If I search for thread size "tex 70", I get all "tex 70" threads. I also get threads of other sizes that happen to have "70" anywhere in their search fields. Thus a size 46 thread comes up because its product number is "67010".

    After much helpful discussion with Miva Support, it turns out that Miva treats a two-word search as if it was two one word searches. In the previous example, Miva first finds all products with "tex"; then it finds all products with "70", and finally returns all products with either "tex" OR "70".

    The best solution would be to treat a two-word search as a single phrase and only return LIKE matches in the search results. Alternatively, connect the separate one-word searches with an AND instead of an OR.

    #2
    Are you completely up to date? This was fixed in 9.07.03
    Mark Hood
    Vermont Gear

    Comment


      #3
      Mark, We are on release 9.07.03. This release fixed the problem of the search drill-down not working. This problem is totally unrelated to that problem. Here is an excerpt from Miva Support's reply to ticket UFC-209-50657.

      "Here is the logic Miva uses on search:

      It would take a string such as "Hello World" and search for each word such as 'descrip LIKE '%Hello%' OR descrip LIKE '%World%''.

      So essentially we split the words and do individual searches on each work then combine the results."

      The use of OR instead of AND is the problem. A search term like "Tex 70" is parsed into two search terms "Tex" and "70". Miva then finds every product with "Tex" OR "70" and counts them as matches even through many of them are irrelevant. I believe that only products with "Tex" AND "70" should count as matches.


      Comment


        #4
        Interesting Here's my support document to add to yours.
        9.07.02 actually fixed it back to the way it worked pre 9.07.00 for me

        Pre-9.07.00
        SELECT * FROM s01_Products WHERE ( code LIKE ? OR name LIKE ? ) AND ( code LIKE ? OR name LIKE ? )
        Parameter 1: 'hello'
        Parameter 2: 'hello'
        Parameter 3: 'world'
        Parameter 4: 'world'


        9.07.00
        SELECT * FROM s01_Products WHERE ( code LIKE ? OR name LIKE ? )
        Parameter 1: 'hello world'
        Parameter 2: 'hello world'


        9.07.01
        SELECT * FROM s01_Products WHERE ( code LIKE ? OR name LIKE ? ) OR ( code LIKE ? OR name LIKE ? )
        Parameter 1: 'hello'
        Parameter 2: 'hello'
        Parameter 3: 'world'
        Parameter 4: 'world'



        Mark Hood
        Vermont Gear

        Comment


          #5
          Seems like 9.07.03 fixed it back to 9.07.00 for me:


          9.07.00
          SELECT * FROM s01_Products WHERE ( code LIKE ? OR name LIKE ? )
          Parameter 1: 'hello world'
          Parameter 2: 'hello world'

          From real world queries I would prefer a fulltext search like this:

          Code:
          SELECT * FROM s01_Products WHERE MATCH( code, name ) AGAINST('+g.word_1*, +g.word_n*' IN BOOLEAN MODE ) AND active = 1 LIMIT 48
          I'm not seeing plurals or stemming working as expected in FULLTEXT mode so I added the wildcard. I think a keyword_extract assignment may help.
          http://www.alphabetsigns.com/

          Comment


            #6
            I asked Miva Support about the Full Text option because it was not in their documentation. They said that checking the box makes Miva Search in the way it worked pre-release 9.07. My testing confirms this.

            Comment


              #7
              Hi Bob,

              Thanks for the feedback. I believe you, I just don't get the same results.

              I noticed that after checking the box a FULLTEXT index is created on those s01_Products fields. Kind of a waste if your only running %LIKE% queries.

              I'm not getting good results on LIKE% or FTS queries for plurals or stemming. Have you checked for plurals or stems?

              I'm running some tests with a PREACTION_ for data scrubbing and POSTACTION_ for FTS queries and am getting some good search_results.

              POSTACTION_ snippet:

              Code:
              <mvt:assign name="g.has_keyword_extracted" value="keyword_extract( g.fts_search, l.settings:keyword_extracted )" />
              
              <mvt:foreach iterator="keyword" array="keyword_extracted">
                  <mvt:assign name="g.fts_stem_search" value="g.fts_stem_search $ ' +' $ l.settings:keyword $ '*'" />
              </mvt:foreach>
              As you said, I like the new Miva search and with some improvements can't wait to cancel my third party search module.





              http://www.alphabetsigns.com/

              Comment

              Working...
              X