X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=handlers%2F40_search.sh;h=90840603cd6ec7e1881b197f92994d2bbd4e3882;hb=11b34efdbb85ef0accaf366b25f952f41e1b4aa4;hp=5d0b1f698d14987c7d79843557669a5b8adc3925;hpb=7c77b7ea9dca882837840bfe9508801bafeae472;p=shellwiki diff --git a/handlers/40_search.sh b/handlers/40_search.sh index 5d0b1f6..9084060 100644 --- a/handlers/40_search.sh +++ b/handlers/40_search.sh @@ -14,6 +14,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +[ "$SEARCH_INDEX" != true ] && return 1 [ "${PATH_INFO%\[search\]}" = "$PATH_INFO" ] && return 1 . "$_EXEC/cgilite/storage.sh" @@ -35,14 +36,14 @@ for w in ${words}; do while read date doc freq num total; do P="$_DATA/pages$(UNSTRING "$doc")" - d="$(stat -c %Y -- "$P/#index.flag")" - [ "$d" -gt "$date" ] && continue + d="$(stat -c %Y -- "$P/#index.flag" 2>&-)" + [ "$d" -le "$date" ] 2>&- || continue printf '%s %f\n' "$doc" "$freq" done <"$I/$w" done \ | awk ' - { cnt[$1]++; weight[$1] = weight[$1] ? weight[$1] * $2 : $2; } + { cnt[$1]++; weight[$1] = weight[$1] ? weight[$1] + $2 : $2; } END { m = 0; for (d in cnt) m = ( m < cnt[d] ) ? cnt[d] : m; for (d in cnt) if ( cnt[d] == m ) printf "%f %s\n", weight[d], d; }