<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.umiacs.umd.edu/adapt/index.php?action=history&amp;feed=atom&amp;title=Webarc%3ATemporal_Search_Client%2FServer</id>
	<title>Webarc:Temporal Search Client/Server - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umiacs.umd.edu/adapt/index.php?action=history&amp;feed=atom&amp;title=Webarc%3ATemporal_Search_Client%2FServer"/>
	<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;action=history"/>
	<updated>2026-04-29T19:52:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2539&amp;oldid=prev</id>
		<title>Scsong at 15:21, 11 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2539&amp;oldid=prev"/>
		<updated>2009-11-11T15:21:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:21, 11 November 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== What It Does ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== What It Does ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is an RPC server/client implementation for our temporal search experiments.  The server provides two remote procedures for clients to call: getstats and search. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Getstats &lt;/del&gt;returns statistics (such as doc count, term count, fresh doc count, ...) upon a provisional query, while search returns the actual search results for a query. Each search server is multithreaded and can handle multiple indexes simultaneously. Each search client is also multithreaded and issues a search request to multiple servers simultaneously.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is an RPC server/client implementation for our temporal search experiments.  The server provides two remote procedures for clients to call: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;getstats&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039; &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;search&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;getstat&#039;&#039;s &lt;/ins&gt;returns statistics (such as doc count, term count, fresh doc count, ...) upon a provisional query, while &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;search&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039; &lt;/ins&gt;returns the actual search results for a query. Each search server is multithreaded and can handle multiple indexes simultaneously. Each search client is also multithreaded and issues a search request to multiple servers simultaneously.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== RPC interface definition ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== RPC interface definition ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2538&amp;oldid=prev</id>
		<title>Scsong at 15:20, 11 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2538&amp;oldid=prev"/>
		<updated>2009-11-11T15:20:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:20, 11 November 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l111&quot;&gt;Line 111:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 111:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&amp;lt;query terms list&amp;gt;&#039;&#039;: A file that lists search &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms &lt;/del&gt;to be used.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&amp;lt;query terms list&amp;gt;&#039;&#039;: A file that lists search &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;phrases &lt;/ins&gt;to be used.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l118&quot;&gt;Line 118:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&amp;lt;query spans list&amp;gt;&#039;&#039;: A file that lists {begin time - end time} pairs to be used for each search &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms &lt;/del&gt;listed in &#039;&#039;&amp;lt;query terms list&amp;gt;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&amp;lt;query spans list&amp;gt;&#039;&#039;: A file that lists {begin time - end time} pairs to be used for each search &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;phrase &lt;/ins&gt;listed in &#039;&#039;&amp;lt;query terms list&amp;gt;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l161&quot;&gt;Line 161:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 161:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output File ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Output File ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Search server makes no output file. Search client creates &#039;&#039;&amp;lt;query span list&amp;gt;_&amp;lt;time windows list&amp;gt;.out&#039;&#039; under the current directory.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Search server makes no output file. Search client creates &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a Trec_Eval complaint output file with the name of &lt;/ins&gt;&#039;&#039;&amp;lt;query span list&amp;gt;_&amp;lt;time windows list&amp;gt;.out&#039;&#039; under the current directory.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2520&amp;oldid=prev</id>
		<title>Scsong at 02:00, 10 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Temporal_Search_Client/Server&amp;diff=2520&amp;oldid=prev"/>
		<updated>2009-11-10T02:00:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== What It Does ==&lt;br /&gt;
This is an RPC server/client implementation for our temporal search experiments.  The server provides two remote procedures for clients to call: getstats and search. Getstats returns statistics (such as doc count, term count, fresh doc count, ...) upon a provisional query, while search returns the actual search results for a query. Each search server is multithreaded and can handle multiple indexes simultaneously. Each search client is also multithreaded and issues a search request to multiple servers simultaneously.&lt;br /&gt;
&lt;br /&gt;
== RPC interface definition ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
struct searchhits_struct {&lt;br /&gt;
   string docId&amp;lt;&amp;gt;;&lt;br /&gt;
   double score;&lt;br /&gt;
   searchhits_struct *next;&lt;br /&gt;
};&lt;br /&gt;
typedef struct searchhits_struct searchhits;&lt;br /&gt;
&lt;br /&gt;
struct terms_counts_struct {&lt;br /&gt;
   string term&amp;lt;&amp;gt;;&lt;br /&gt;
   unsigned int docCount;&lt;br /&gt;
   unsigned int termCount_high32;&lt;br /&gt;
   unsigned int termCount_low32;&lt;br /&gt;
   terms_counts_struct *next;&lt;br /&gt;
}; &lt;br /&gt;
typedef struct terms_counts_struct terms_counts;&lt;br /&gt;
&lt;br /&gt;
struct terms_no_counts_struct {&lt;br /&gt;
   string term&amp;lt;&amp;gt;;&lt;br /&gt;
   terms_no_counts_struct *next;&lt;br /&gt;
}; &lt;br /&gt;
typedef struct terms_no_counts_struct terms_no_counts;&lt;br /&gt;
&lt;br /&gt;
struct col_stats_struct {&lt;br /&gt;
   unsigned int docCount;&lt;br /&gt;
   float docAverageLength;&lt;br /&gt;
   unsigned int termCountUnique;&lt;br /&gt;
   unsigned int termCount_high32;&lt;br /&gt;
   unsigned int termCount_low32;&lt;br /&gt;
};&lt;br /&gt;
typedef col_stats_struct col_stats;&lt;br /&gt;
   &lt;br /&gt;
struct final_query_struct {&lt;br /&gt;
   terms_counts terms;&lt;br /&gt;
   unsigned int beginTime;&lt;br /&gt;
   unsigned int endTime;&lt;br /&gt;
   unsigned int maxNoHits;&lt;br /&gt;
   col_stats colStat;&lt;br /&gt;
};&lt;br /&gt;
typedef struct final_query_struct final_query;&lt;br /&gt;
&lt;br /&gt;
struct probe_query_struct {&lt;br /&gt;
   terms_no_counts terms;&lt;br /&gt;
   unsigned int beginTime;&lt;br /&gt;
   unsigned int endTime;&lt;br /&gt;
};&lt;br /&gt;
typedef struct probe_query_struct probe_query;&lt;br /&gt;
&lt;br /&gt;
program tsearch {&lt;br /&gt;
   version v1 {&lt;br /&gt;
      searchhits search(final_query) = 1;&lt;br /&gt;
      final_query getstats(probe_query) = 2;&lt;br /&gt;
   }=1;&lt;br /&gt;
}=0x00001000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How To Build ==&lt;br /&gt;
In tsearch directory, &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How To Run ==&lt;br /&gt;
=== Run Search Server ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd bin&lt;br /&gt;
./tsearchsvr &amp;lt;timewindow configuration file&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Run Search Client ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd bin&lt;br /&gt;
./tsearchcli &amp;lt;rpc server list&amp;gt; &amp;lt;query terms list&amp;gt; &amp;lt;query spans list&amp;gt; &amp;lt;time windows list&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Input File ==&lt;br /&gt;
=== Search Server ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;timewindow configuration file&amp;gt;&amp;#039;&amp;#039;: A file that lists the locations of the indexes and the retrieval method to be used.&lt;br /&gt;
&lt;br /&gt;
Example contents in a list file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-001 TEMP_OKAPI&lt;br /&gt;
2 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-002 TEMP_OKAPI&lt;br /&gt;
3 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-003 TEMP_OKAPI&lt;br /&gt;
4 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-004 TEMP_OKAPI&lt;br /&gt;
5 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-005 TEMP_OKAPI&lt;br /&gt;
6 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-006 TEMP_OKAPI&lt;br /&gt;
7 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-007 TEMP_OKAPI&lt;br /&gt;
8 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-008 TEMP_OKAPI&lt;br /&gt;
9 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-009 TEMP_OKAPI&lt;br /&gt;
10 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-010 TEMP_OKAPI&lt;br /&gt;
11 /fs/webarc3/data/wikipedia/lemur_index/monthly/month-011 TEMP_OKAPI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Search Client ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;rpc server list&amp;gt;&amp;#039;&amp;#039;: A file that lists the locations of the RPC search servers to connect.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chimera00&lt;br /&gt;
chimera02&lt;br /&gt;
chimera03&lt;br /&gt;
chimera04&lt;br /&gt;
chimera05&lt;br /&gt;
chimera06&lt;br /&gt;
chimera07&lt;br /&gt;
chimera08&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;query terms list&amp;gt;&amp;#039;&amp;#039;: A file that lists search terms to be used.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1901 uk census&lt;br /&gt;
2004 taxes income from business partnership deductions&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;query spans list&amp;gt;&amp;#039;&amp;#039;: A file that lists {begin time - end time} pairs to be used for each search terms listed in &amp;#039;&amp;#039;&amp;lt;query terms list&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1-64&lt;br /&gt;
2-65&lt;br /&gt;
3-66&lt;br /&gt;
4-67&lt;br /&gt;
5-68&lt;br /&gt;
6-69&lt;br /&gt;
7-70&lt;br /&gt;
8-71&lt;br /&gt;
9-72&lt;br /&gt;
10-73&lt;br /&gt;
11-74&lt;br /&gt;
12-75&lt;br /&gt;
13-76&lt;br /&gt;
14-77&lt;br /&gt;
15-78&lt;br /&gt;
16-79&lt;br /&gt;
17-80&lt;br /&gt;
18-81&lt;br /&gt;
19-82&lt;br /&gt;
20-83&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;time windows list&amp;gt;&amp;#039;&amp;#039;: A file that lists the temporal points where a new time window begins. The last number in the list is when the last time window ends.&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
8&lt;br /&gt;
16&lt;br /&gt;
24&lt;br /&gt;
32&lt;br /&gt;
40&lt;br /&gt;
48&lt;br /&gt;
56&lt;br /&gt;
64&lt;br /&gt;
72&lt;br /&gt;
80&lt;br /&gt;
83&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output File ==&lt;br /&gt;
Search server makes no output file. Search client creates &amp;#039;&amp;#039;&amp;lt;query span list&amp;gt;_&amp;lt;time windows list&amp;gt;.out&amp;#039;&amp;#039; under the current directory.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* When running tsearchcli, place &amp;#039;&amp;#039;&amp;lt;query spans list&amp;gt;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;lt;time windows list&amp;gt;&amp;#039;&amp;#039; in the current directory, and use bare file names without any preceding directory description. (I.e. &amp;#039;qts.def&amp;#039; rather than &amp;#039;./qts.def&amp;#039; or &amp;#039;/tmp/qts.def).&lt;br /&gt;
* The current RPC implementation in Linux has the following limitations:&lt;br /&gt;
** Although individual procedures can create multithreads to complete the job more quickly, the procedure itself cannot be multithreaded. (I.e. multiple calls to the same procedure will be processed sequentially). &lt;br /&gt;
** There is no 8-byte data type support. Even the &amp;#039;long&amp;#039; type in a 64-bit machine  is not properly parsed in the RPC implementation. We walked around this issue by defining two 4-byte integer variables, each of which represents the low/upper half of the 64-bit value.&lt;br /&gt;
&lt;br /&gt;
== Source Codes ==&lt;br /&gt;
svn co http://narasvn.umiacs.umd.edu/repository/src/webarc/tsearch&lt;/div&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
</feed>