mirror of
https://github.com/btdig/dhtcrawler2.git
synced 2025-02-23 21:59:04 +00:00
add sphinx search stats
This commit is contained in:
parent
1d27f2416b
commit
1d870e2e42
@ -116,11 +116,14 @@ do_search(Keyword) ->
|
|||||||
Tip ++ Body.
|
Tip ++ Body.
|
||||||
|
|
||||||
do_search_sphinx(Keyword, Page) ->
|
do_search_sphinx(Keyword, Page) ->
|
||||||
Rets = db_frontend:search_by_sphinx(Keyword, Page, ?COUNT_PER_PAGE + 1),
|
{Stats, Rets} = db_frontend:search_by_sphinx(Keyword, Page, ?COUNT_PER_PAGE + 1),
|
||||||
|
{SphinxTime, DBTime} = Stats,
|
||||||
ThisPage = lists:sublist(Rets, ?COUNT_PER_PAGE),
|
ThisPage = lists:sublist(Rets, ?COUNT_PER_PAGE),
|
||||||
|
StatsDesc = ?TEXT("<h4>search ~s, sphinx ~f ms, db ~f ms</h4>",
|
||||||
|
[Keyword, SphinxTime / 1000, DBTime / 1000]),
|
||||||
BodyList = format_search_result(ThisPage),
|
BodyList = format_search_result(ThisPage),
|
||||||
Body = ?TEXT("<ol>~s</ol>", [lists:flatten(BodyList)]),
|
Body = ?TEXT("<ol>~s</ol>", [lists:flatten(BodyList)]),
|
||||||
Body ++ append_page_nav(Keyword, Page, Rets).
|
StatsDesc ++ Body ++ append_page_nav(Keyword, Page, Rets).
|
||||||
|
|
||||||
append_page_nav(Key, Page, ThisRet) ->
|
append_page_nav(Key, Page, ThisRet) ->
|
||||||
Nav = case length(ThisRet) of
|
Nav = case length(ThisRet) of
|
||||||
@ -131,7 +134,7 @@ append_page_nav(Key, Page, ThisRet) ->
|
|||||||
Size when Page > 0 ->
|
Size when Page > 0 ->
|
||||||
format_page_nav(Key, Page - 1, "Prev") ++
|
format_page_nav(Key, Page - 1, "Prev") ++
|
||||||
if Size > ?COUNT_PER_PAGE ->
|
if Size > ?COUNT_PER_PAGE ->
|
||||||
"|" ++ format_page_nav(Key, Page + 1, "Next");
|
" " ++ format_page_nav(Key, Page + 1, "Next");
|
||||||
true -> []
|
true -> []
|
||||||
end;
|
end;
|
||||||
Size ->
|
Size ->
|
||||||
|
@ -14,13 +14,18 @@ search(Conn, Key, Offset, Count) ->
|
|||||||
Q2 = giza_query:port(Q1, ?PORT),
|
Q2 = giza_query:port(Q1, ?PORT),
|
||||||
Q3 = giza_query:offset(Q2, Offset),
|
Q3 = giza_query:offset(Q2, Offset),
|
||||||
Q4 = giza_query:limit(Q3, Count),
|
Q4 = giza_query:limit(Q3, Count),
|
||||||
case catch giza_request:send(Q4) of
|
T1 = now(),
|
||||||
|
{T2, TDocs} = case catch giza_request:send(Q4) of
|
||||||
{'EXIT', R} ->
|
{'EXIT', R} ->
|
||||||
?W(?FMT("sphinx search error ~p", [R])),
|
?W(?FMT("sphinx search error ~p", [R])),
|
||||||
[];
|
[];
|
||||||
{ok, Ret} ->
|
{ok, Ret} ->
|
||||||
decode_search_ret(Conn, Ret)
|
T = now(),
|
||||||
end.
|
{T, decode_search_ret(Conn, Ret)}
|
||||||
|
end,
|
||||||
|
T3 = now(),
|
||||||
|
Stats = {timer:now_diff(T2, T1), timer:now_diff(T3, T2)},
|
||||||
|
{Stats, TDocs}.
|
||||||
|
|
||||||
decode_search_ret(Conn, Ret) ->
|
decode_search_ret(Conn, Ret) ->
|
||||||
Hashes = [translate_hash(Item) || Item <- Ret],
|
Hashes = [translate_hash(Item) || Item <- Ret],
|
||||||
|
Loading…
Reference in New Issue
Block a user