WackoWiki: Extended Search

https://wackowiki.org/doc     Version: 18 (16.05.2019 11:40)

Extended Search

bugs:173[link1]
Author: Your Name (Your Backtracker Handle, use ::::)




1. Introduction


Introduction of idea

[Sort by] [Filter]

2. Implementation Notes



Database Changes

Configuration

Data used
Basic
  1. page title
  2. page name (tag)
  3. page name (if got different menu name)
  4. page description (if set manually)
  5. page keywords (if set manually)
  6. PAGE CONTENT
  7. anchor text from the links linking to this page form other pages in our system
  8. taggings (not yet implemeted)

Scope
  1. page
  2. comment
  3. file

Relevance
  1. time
  2. revisions
  3. user
  4. some magic factors
  5. page language
  6. watchers
  7. links
  8. backlinks
  9. views
  10. authors
  11. categories
  12. size
  13. files

Filter
  1. exclude system (owner) pages
  2. include comments
  3. include files
  4. lang
  5. cluster
  6. categories

Results [pages, comments, files]
  1. title
  2. tag
  3. categories
  4. body
  5. last editor
  6. owner
  7. last modified
  8. created
  9. page / comment
  10. cluster
  11. user / system page
  12. attached / linked files (count)
  13. language
  14. comments (count)
  15. categories
  16. revisions (count)

Preview (teaser)

2.1. Limits

URL length: 256 bytes limit on some browsers


  1. How to pass an array within a query string?[link3]

JSON method
 $array = array(2, 46, 34, 'text');
$serialized = json_encode($array)
$data = 'array=' . rawurlencode($serialized);
// Send to page via cURL, header() or other service.	


code for receiving page:
 $array = json_decode($_GET['array']); 
// Or $_POST['array'] if a post request.	



Implementation Log

3. Other Changes

4. Related Links

  1. https://archive.org/search.php?query=Ward Cunningham[link4] - example for faceted search
  2. http://www.uxmatters.com/mt/ar[...]d-search-filters.php[link5]
  3. https://ux.stackexchange.com/q[...]ing-links-vs-checkbo[link6]
  4. https://www.mullie.eu/mysql-as-a-search-engine/

MariaDb/MySql
  1. https://dev.mysql.com/doc/refm[...]ulltext-boolean.html[link7]
  2. https://dev.mysql.com/doc/refm[...]xt-restrictions.html[link8]
  3. https://dev.mysql.com/doc/refm[...]ltext-stopwords.html[link9]

5. Future Ideas

  1. Faceted navigation index tables
    1. One table contains a list of the object facets and the other contains facts about the objects.
    2. <?php
      /**
       * Populates the object_facts table with data from the objects table
       */
      function populate_object_facts()
      {
        //empty object_facts table
        $this->sql_query ("TRUNCATE objects_facts");  
      
        //fetch all object data
        $result = $this->load_all ("SELECT * FROM objects");
      
          //loop through table columns
          foreach ($result as $key => $value)
          {
            //create facts for all object fields except 'id' and 'name'
            if ($key != "id" && $key != "name")
            {
              $sql = "INSERT INTO objects_facts VALUES (" . $row['id'] . ",$facet_id,'$key','$value');";
              $this->sql_query ($sql);
              $facet_id++;
      
              echo "Added fact: (".$row['id'].", $facet_id, $key, $value) <br/>";
            }
          }
      }

6. Feedback