Skip to content
Snippets Groups Projects
Commit 9a9b579a authored by Michael Hamann's avatar Michael Hamann
Browse files

Fix index histogram minlen parameter for metadata keys

This includes a test for the minlen parameter for metadata keys
parent 92a5d126
No related branches found
No related tags found
No related merge requests found
<?php
/**
* Tests the histogram function of the indexer.
*
* @author Michael Hamann <michael@content-space.de>
*/
class indexer_histogram_test extends DokuWikiTest {
function test_minlength() {
$indexer = idx_get_indexer();
$indexer->addMetaKeys('histo1', 'testkey', array('foo', 'bar', 'foobar'));
$indexer->addMetaKeys('histo2', 'testkey', array('bar', 'testing'));
$indexer->addMetaKeys('histo3', 'testkey', array('foo', 'foobar'));
$histogram4 = $indexer->histogram(1, 0, 4, 'testkey');
$this->assertEquals(array('foobar' => 2, 'testing' => 1), $histogram4);
$histogram2 = $indexer->histogram(1, 0, 2, 'testkey');
$this->assertEquals(array('foobar' => 2, 'testing' => 1, 'foo' => 2, 'bar' => 2), $histogram2);
}
}
......@@ -755,13 +755,15 @@ class Doku_Indexer {
$val_idx = array();
foreach ($index as $wid => $line) {
$freq = $this->countTuples($line);
if ($freq >= $min && (!$max || $freq <= $max) && strlen($val) >= $minlen)
if ($freq >= $min && (!$max || $freq <= $max))
$val_idx[$wid] = $freq;
}
if (!empty($val_idx)) {
$words = $this->getIndex($metaname.'_w', '');
foreach ($val_idx as $wid => $freq)
$result[$words[$wid]] = $freq;
foreach ($val_idx as $wid => $freq) {
if (strlen($words[$wid]) >= $minlen)
$result[$words[$wid]] = $freq;
}
}
}
else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment