bugs:173
Author: Your Name (Your Backtracker Handle, use ""::::"")
{{toc numerate=1}}
file:page_metadata.png
===Introduction===
Introduction of idea
[Sort by] [Filter]
===Implementation Notes===
* Some notes
* search on the word
* search on the current branch and its descendants (as the page WackoWiki represent a tree structure)
* search with the selection (such as "+ window-windows" to find a page containing floor window but does not contain the word windows)
* search highlighting
* more suggestions
Database Changes
* Required database changes to wacko_xyz_table
Configuration
* $_var indicates something
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
1. revisions
1. user
1. some magic factors
1. page language
1. watchers
1. links
1. backlinks
1. views
1. authors
1. categories
1. size
1. 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)
====Limits====
URL length: 256 bytes limit on some browsers
* ((https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers de facto limit of 2000 characters))
1. ((https://stackoverflow.com/questions/6243051/how-to-pass-an-array-within-a-query-string/9547490#9547490 How to pass an array within a query string?))
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
===Other Changes===
===Related Links===
1. https://archive.org/search.php?query=Ward%20Cunningham - example for faceted search
2. http://www.uxmatters.com/mt/archives/2009/09/best-practices-for-designing-faceted-search-filters.php
3. https://ux.stackexchange.com/questions/30057/which-is-the-correct-way-to-implement-faceted-search-filtering-links-vs-checkbo
4. https://www.mullie.eu/mysql-as-a-search-engine/
MariaDb/MySql
1. https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
2. https://dev.mysql.com/doc/refman/5.6/en/fulltext-restrictions.html
3. https://dev.mysql.com/doc/refman/5.7/en/fulltext-stopwords.html
===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)
<?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/>";
}
}
}%%
===Feedback===
* Please provide feedback