<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>apache &#8211; Solr.pl</title>
	<atom:link href="https://solr.pl/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>https://solr.pl</link>
	<description>All things to be found - Blog related to Apache Solr &#38; Lucene projects - https://solr.apache.org</description>
	<lastBuildDate>Thu, 12 Nov 2020 11:10:50 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Solr 4.3: Dzielenie shard&#8217;ów &#8211; szybkie spojrzenie</title>
		<link>https://solr.pl/2013/05/06/solr-4-3-dzielenie-shardow-szybkie-spojrzenie/</link>
					<comments>https://solr.pl/2013/05/06/solr-4-3-dzielenie-shardow-szybkie-spojrzenie/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 06 May 2013 10:10:17 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[shard]]></category>
		<category><![CDATA[shard spliting]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[split]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=507</guid>

					<description><![CDATA[Wraz z wersją 4.3 serwera wyszukiwania Apache Solr dostaliśmy bardzo długo oczekiwaną funkcjonalność &#8211; możliwość dzielenia części kolekcji kiedy korzystamy z wdrożenia opartego o SolrCloud. W tym wpisie chcieliśmy wypróbować nową funkcjonalność i zobaczyć jak działa. Do dzieła więc. Kilka]]></description>
										<content:encoded><![CDATA[<p>Wraz z wersją 4.3 serwera wyszukiwania Apache Solr dostaliśmy bardzo długo oczekiwaną funkcjonalność &#8211; możliwość dzielenia części kolekcji kiedy korzystamy z wdrożenia opartego o SolrCloud. W tym wpisie chcieliśmy wypróbować nową funkcjonalność i zobaczyć jak działa. Do dzieła więc.</p>
<p><span id="more-507"></span></p>
<p><!--more--></p>
<h3>Kilka słów na początek</h3>
<p>Wybór odpowiedniej liczby części z jakich będzie składała się nasza kolekcja był do tej pory jedną z niewiadomych, których wartość musieliśmy znać przed wdrożeniem. Kiedy tylko stworzyliśmy kolekcję nie mogliśmy zmienić liczby shardów z jakich się składa, mogliśmy dodawać tylko nowe repliki. Oczywiście niosło to za sobą konsekwencje &#8211; jeżeli nasze zalożenia nie były prawidłowe mogło się okazać, iż liczba shardów jest niewystarczająca. Mogliśmy wtedy tylko zalożyć nową kolekcję z inną konfiguracją, a następnie przeindeksować dane. Aż do chwili, kiedy pojawił się Apache Solr 4.3, a wraz z nim możliwość dzielenia na części stworzonej już kolekcji.</p>
<h3>Mały klaster</h3>
<p>W celu przetestowania nowej funkcjonalności postanowiłem uruchomić klaster składający się z jednej instancji Solr oraz z wbudowanym ZooKeeperem oraz przykładową kolekcją dostarczaną wraz z Solr. W tym celu użyłem następującej komendy:
</p>
<pre class="brush:bash">java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=collection1 -DzkRun -DnumShards=1 -DmaxShardsPerNode=2 -DreplicationFactor=1 -jar start.jar</pre>
<p>Po uruchomieniu Solr widok klastra przedstawiał się następująco:</p>
<p><a href="http://solr.pl/wp-content/uploads/2013/05/after_start1.png"><img decoding="async" class="aligncenter size-full wp-image-3080" alt="after_start" src="http://solr.pl/wp-content/uploads/2013/05/after_start1.png" width="524" height="27"></a></p>
<h3>Testowe dane</h3>
<p>Do testów potrzebne są także jakieś dane, postanowiłem więc skorzystać z przykładowych dostarczanych z Solr i uruchomić następujące polecenie w katalogu <em>exampledocs</em>:
</p>
<pre class="brush:bash">java -jar post.jar *.xml</pre>
<p>Liczbę zaindeksowanych dokumentów sprawdzić można wykonując następującą komendę:
</p>
<pre class="brush:bash">curl 'http://localhost:8983/solr/collection1/select?q=*:*&amp;rows=0'</pre>
<p>Na którą Solr odpowiedział następująco:
</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
&lt;lst name="responseHeader"&gt;
&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp; &lt;int name="QTime"&gt;5&lt;/int&gt;
&nbsp; &lt;lst name="params"&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="q"&gt;*:*&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="rows"&gt;0&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&lt;/lst&gt;
&lt;result name="response" numFound="32" start="0"&gt;
&lt;/result&gt;
&lt;/response&gt;</pre>
<p>Jak widać zaindeksowanych zostało dokładnie 32 dokumenty.</p>
<h3>Podział shard&#8217;a</h3>
<p>Spróbujmy zatem podzielić nasz pojedynczy shard, z którego składa się nasza kolekcja. W tym celu wykorzystamy API kolekcji i nową akcję o nazwie SPLITSHARD, która w podstawowej wersji przymuje dwa parametery &#8211; <em>collection</em>, czyli nazwę kolekcji na której chcemy wykonać operację oraz <em>shard</em>, czyli nazwę shard&#8217;a którego chcemy podzielić. W naszym wypadku komenda, która podzieli kolekcję jest następująca:
</p>
<pre class="brush:bash">curl 'http://localhost:8983/solr/admin/collections?action=SPLITSHARD&amp;collection=collection1&amp;shard=shard1'</pre>
<p>Po chwili, jeżeli wszystko przebiegło poprawnie, powinniśmy dostać od Solr odpowiedź informującą o przebiegu operacji podziału, wyglądającą mniej więcej tak:
</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
&lt;lst name="responseHeader"&gt;
&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp; &lt;int name="QTime"&gt;9220&lt;/int&gt;
&lt;/lst&gt;
&lt;lst name="success"&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;6963&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="core"&gt;collection1_shard1_1_replica1&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="saved"&gt;/home/solr/4.3/solr/solr.xml&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;6977&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="core"&gt;collection1_shard1_0_replica1&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="saved"&gt;/home/solr/4.3/solr/solr.xml&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;9005&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;9006&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;103&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;1&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="core"&gt;collection1_shard1_1_replica1&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="status"&gt;EMPTY_BUFFER&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&nbsp; &lt;lst&gt;
&nbsp;&nbsp;&nbsp; &lt;lst name="responseHeader"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;int name="QTime"&gt;1&lt;/int&gt;
&nbsp;&nbsp;&nbsp; &lt;/lst&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="core"&gt;collection1_shard1_0_replica1&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="status"&gt;EMPTY_BUFFER&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&lt;/lst&gt;
&lt;/response&gt;</pre>
<h3>Wygląd klastra po podziale</h3>
<p>Po podziale nasz klaster wygląda następująco:</p>
<p><a href="http://solr.pl/wp-content/uploads/2013/05/after_split.png"><img decoding="async" class="aligncenter size-full wp-image-3082" alt="after_split" src="http://solr.pl/wp-content/uploads/2013/05/after_split.png" width="520" height="80"></a>Jak widać powstały dwa nowe shardy, które teoretycznie powinny zawierać dokumenty z shard1 &#8211; część z dokumentów powinny trafić do części oznaczonej <em>shard1_1</em>, a część do <em>shard1_0</em>. Ponownie korzystając z panelu administarcyjnego Solr możemy sprawdzić odpowiednie core&#8217;y:</p>
<h4>Shard1_1</h4>
<p>Statystki cześci kolekcji oznaczonej jako <em>Shard1_1</em> wyglądają następująco:</p>
<p><a href="http://solr.pl/wp-content/uploads/2013/05/shard_1_1.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3083" alt="shard_1_1" src="http://solr.pl/wp-content/uploads/2013/05/shard_1_1.png" width="415" height="210"></a></p>
<p><strong>Shard1_0</strong></p>
<p>Natomiast statystki cześci kolekcji oznaczonej jako <em>Shard1_0</em> wyglądają następująco:</p>
<h3><a href="http://solr.pl/wp-content/uploads/2013/05/shard_1_0.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3084" alt="shard_1_0" src="http://solr.pl/wp-content/uploads/2013/05/shard_1_0.png" width="352" height="207"></a></h3>
<p>Jak widać z 32 dokumentów, które były dostępne w oryginalnej części kolekcji powstały dwie części kolekcji &#8211; jedna przechowująca 18 dokumentów,&nbsp; a druga przechowująca 14 dokumentów. Teoretycznie się zgadza <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Porządki</h3>
<p>Na sam koniec zostawiłem sobie porządki. Po pierwsze, aby dane w nowych shardach były widoczne musimy wysłać polecenie commit do naszej kolekcji, np w następujący sposób:
</p>
<pre class="brush:bash">curl 'http://localhost:8983/solr/collection1/update' --data-binary '&lt;commit/&gt;' -H 'Content-type:application/xml'</pre>
<p>Możemy także usunąć oryginalny shard z kolekcji, korzystając np. z panelu administracyjnego Solr lub też używając CoreAPI.</p>
<h3>Ostatni test</h3>
<p>Jako podsumowanie postanowiłem sprawdzić, czy na pewno dokumenty są dostępne w odpowiednich częściach kolekcji. W tym celu skorzystałem z następującego polecenia:
</p>
<pre class="brush:bash">curl 'http://localhost:8983/solr/collection1/select?q=*:*&amp;rows=100&amp;fl=id,[shard]&amp;indent=true'</pre>
<p>Odpowiedź Solr na powyższe zapytanie była następująca:
</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
&lt;lst name="responseHeader"&gt;
&nbsp; &lt;int name="status"&gt;0&lt;/int&gt;
&nbsp; &lt;int name="QTime"&gt;7&lt;/int&gt;
&nbsp; &lt;lst name="params"&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="fl"&gt;id,[shard]&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="q"&gt;*:*&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="rows"&gt;100&lt;/str&gt;
&nbsp; &lt;/lst&gt;
&lt;/lst&gt;
&lt;result name="response" numFound="32" start="0" maxScore="1.0"&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;GB18030TEST&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;IW-02&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;MA147LL/A&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;adata&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;asus&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;belkin&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;maxtor&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;TWINX2048-3200PRO&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;VS1GB400C3&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;VDBDB1A16&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;USD&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;GBP&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;3007WFP&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;EN7800GTX/2DHTV/256M&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_0_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;SP2514N&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;6H500F0&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;F8V7067-APL-KIT&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;apple&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;ati&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;canon&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;corsair&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;dell&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;samsung&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;viewsonic&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;EUR&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;NOK&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;VA902B&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;0579B002&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;9885A004&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;SOLR1000&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;UTF8TEST&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&nbsp; &lt;doc&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="id"&gt;100-435805&lt;/str&gt;
&nbsp;&nbsp;&nbsp; &lt;str name="[shard]"&gt;192.168.56.1:8983/solr/collection1_shard1_1_replica1/&lt;/str&gt;&lt;/doc&gt;
&lt;/result&gt;
&lt;/response&gt;</pre>
<p>Jak widać dokumenty pochodzą z obu nowych shardów, czyli znów widać, że wszystko się zgadza. Do samego tematu podziału kolekcji na pewno jeszcze wrócimy.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2013/05/06/solr-4-3-dzielenie-shardow-szybkie-spojrzenie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lucene Eurocon 2011 &#8211; dzień drugi</title>
		<link>https://solr.pl/2011/11/14/lucene-eurocon-2011-dzien-drugi/</link>
					<comments>https://solr.pl/2011/11/14/lucene-eurocon-2011-dzien-drugi/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 14 Nov 2011 20:31:27 +0000</pubDate>
				<category><![CDATA[Konferencje]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[eurocon]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[lucene eurocon]]></category>
		<category><![CDATA[presentation]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=331</guid>

					<description><![CDATA[W poprzednim wpisie staraliśmy się przekazać, jak wyglądał pierwszy dzień Lucene Eurocon 2011 z naszej perspektywy. Jednak z naszego punktu widzenia to drugi dzień był tym ważniejszym, ze względu na to, iż w części popołudniowej mieliśmy poprowadzić jedną z prezentacji.]]></description>
										<content:encoded><![CDATA[<p>W <a href="http://solr.pl/2011/11/07/lucene-eurcon-2011-dzien-pierwszy/" target="_blank" rel="noopener noreferrer">poprzednim</a> wpisie staraliśmy się przekazać, jak wyglądał pierwszy dzień Lucene Eurocon 2011 z naszej perspektywy. Jednak z naszego punktu widzenia to drugi dzień był tym ważniejszym, ze względu na to, iż w części popołudniowej mieliśmy poprowadzić jedną z prezentacji. Zacznijmy jednak od początku.</p>
<p><span id="more-331"></span></p>
<h3>Keynote (Realtime Search at Twitter, Michael Busch)</h3>
<p>Dzień rozpoczął się od jednej z lepszych, moim zdaniem, prezentacji podczas Lucene Eurocon 2011. Michael Busch, podczas swojej prezentacji zatytuowanej &#8222;Realtime Search at Twitter&#8221; (<a href="http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/Busch_twitter_realtime_search_eurocon_11.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>, <a href="http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011/realtime-search-twitter" target="_blank" rel="noopener noreferrer">video</a>) pokazał, co zespół Twittera zrobił, aby obsłużyć wyszukiwanie w czasie rzeczywistym w oparciu o Lucene, tak aby cały system był w stanie obsłużyć codzienny ruch Twittera. Sama prezentacja to bardzo duża ilość technicznych szczegółów, na dodatek bardzo dobrze tłumaczonych przez prowadzącego. Uczestnicy konferencji, oprócz samych informacji o Lucene, dostali także krótką lekcję języka Java i programowania wielowątkowego <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Co nas czeka (Lucene Today, Tomorrow &amp; Beyond, Simon Willnauer)</h3>
<p>Konferencja została podzielona na trzy równoległe sesje, a my wybraliśmy prezentację &#8222;Lucene Today, Tomorrow &amp; Beyond&#8221; (<a href="http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/Willnauer_Eurocon_today_tomorrow_and_beyond_eurocon.pdf">slajdy</a>, <a href="http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011/lucene-today-tomorrow-beyond" target="_blank" rel="noopener noreferrer">video</a>) , którą prowadził Simon Willnauer. Prezentacja skupiła się na tym, czego Lucene nie potrafi w tym momencie, a co może potrafić w przyszłości (np. w wersji 5). Simon rozpoczął od prezentacji historii Lucene, ludzi zaangażowanych w rozwój projektu oraz firm, w których pracują. Następnie mogliśmy dowiedzieć się, co dostaną użytkownicy Lucene, kiedy wersja 4.0 zostanie oficjalnie wydana. Kolejne slajdy, to informacje na temat pozycji tokenów w strumieniu, przyrostowych aktualizacji, czy JIT. Na sam koniec, prezentujący pokazał nam część swojej wizji Lucene i Solr, jako projektów złożonych z modułów.</p>
<h3>Rzecz o explain w Solr (Understanding and Visualising Solr 'explain&#8217; Information, Rafał Kuć)</h3>
<p><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-1783" style="border: 1px solid black; margin: 10px;" title="eurocon2011" src="http://solr.pl/wp-content/uploads/2011/11/eurocon2011-150x150.png" alt="" width="150" height="150">Ze względów prywatnych i chcąc przygotować się do prezentacji opuściliśmy jedną z prezentacji, ze względu, że czas prezentacji zbliżał się wielkimi krokami. Sama prezentacja, czyli &#8222;Understanding and Visualising Solr 'explain&#8217; Information&#8221; (<a href="http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/Understanding%20and%20Visualizing%20Solr%20Explain%20information%20-%20Solr.pl%20-%20version%202.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) podzielona została na dwie części &#8211; pierwsza, czyli teoria dotycząca informacji zwracanych przez Apache Solr oraz druga &#8211; czyli to co udało nam się zrobić w ramach <a href="http://explain.solr.pl" target="_blank" rel="noopener noreferrer">http://explain.solr.pl</a>. Pozwolę sobie nie komentować mojej własnej prezentacji, a skupić się na tym, co ja po niej odczuwałem. Niestety, nie byłem z niej zadowolony, zjadła mnie trema i stres &#8211; nie powiedziałem wszystkiego, pędziłem do przodu, nie wyjaśniłem prawie nic. Zwalam to na kark tego, iż było to pierwsze tego typu wystąpienie w moim wykonaniu i nie mam doświadczenia. Obiecuję, następnym razem będzie lepiej <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Cieszę się natomiast z pozytywnego odbioru prezentacji i samego tematu.</p>
<h3>Testy z dozą losowości (Randomized Continous Testing: Solr &amp; Lucene Use Case, Dawid Weiss)</h3>
<p>Po krótkim odpoczynku udaliśmy się posłuchać jak Dawid Weiss opowiada o testach z wykorzystaniem czynnika losowego podczas prezentacji &#8222;Randomized Continous Testing: Solr &amp; Lucene Use Case&#8221; (<a href="http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/dweiss-Eurocon_testing.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Jeżeli interesuje Was temat testów automatycznych (a powinien) to zdecydowanie polecam slajdy, jak również film, jak tylko będzie dostępny. Dawid zaczął od teorii i tego gdzie można wprowadzić losowy czynnik w testach (oczywiście wszystko w kontekście Solr i Lucene). Następnie dostaliśmy sporą dozę informacji technicznych, czyli w jaki sposób zaimplementować element losowy w testach (oczywiście na przykładach). Nie zabrakło także informacji na temat testowania wielowątkowości.</p>
<h3>Testowanie silników wyszukiwania (Better Search Engine Testing, Eric Pugh)</h3>
<p>Pozostając w temacie testowania, postanowiliśmy udać się na ostatnią prezentację w ramach Lucene Eurocon 2011, czyli w naszym wypadku &#8222;Better Search Engine Testing&#8221; (<a href="http://www.lucidimagination.com/sites/default/files/file/Eurocon2011/Eric%20Pugh%20-%20Better%20Search%20Engine%20Testing%20Printout.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>), którą poprowadził Eric Pugh. Kolejna, z mojego punktu widzenia, ciekawa prezentacja. Eric zaczął od tego, iż wyszukiwanie, a szczególnie dobre wyszukiwanie jest coraz ważniejsze w dzisiejszym świecie. Co więcej, przechowywanie danych jest tanie, ale zarządzanie nimi tanie już nie jest i dlatego wyszukiwanie będzie pełnić coraz większą rolę w dzisiejszym świecie. Następnie Eric skierował naszą uwagę na problematykę testowania silników wyszukiwania i co powinno być testowane oraz w jaki sposób możemy automatycznie testować silniki wyszukiwania. Ciężko napisać skrót tej prezentacji, ze względu na dużą ilość informacji jaką Eric przekazał.</p>
<h3>Commiter panel</h3>
<p>Ostatnią atrakcją w ramach Lucene Eurocon 2011 był tzw. &#8222;Commiter panel&#8221;, czyli spotkanie uczestników z osobami, które na co dzień rozwijają projekty Apache Lucene i Solr. Po krótkim przedstawieniu się, nastąpiła seria pytań i odpowiedzi. Jeżeli kogoś interesuje, przebieg tego spotkania będzie musiał poczekać na udostępnienie materiału video.</p>
<h3>Inne prezentacje</h3>
<p>Osoby zainteresowane innymi prezentacjami, niż te, które opisaliśmy w tym i poprzednim wpisie zapraszam na następujące strony:</p>
<ul>
<li><a href="http://2011.lucene-eurocon.org/">http://2011.lucene-eurocon.org/</a></li>
<li><a href="http://2011.lucene-eurocon.org/pages/program">http://2011.lucene-eurocon.org/pages/program</a></li>
<li><a href="http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011" target="_blank" rel="noopener noreferrer">http://www.lucidimagination.com/devzone/events/conferences/ApacheLuceneEurocon2011</a></li>
</ul>
<h3>Podsumowując</h3>
<p>Moim zdaniem Lucene Eurocon 2011 był konferencją zdecydowanie lepiej zorganizowaną, niż Lucene Eurocon 2010, pomimo tego, że do Eurocon&#8217;u w 2010 roku trudno było się przyczepić. Widać, iż organizatorzy nabierają doświadczenia <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Podczas konferencji można było zapoznać się z tematami stricte technicznymi, jaki i tymi, które skupiają się na użytkowniku. Ze względu na trzy równoległe sesje nie sposób było nie znaleźć w danej chwili prezentacji dla Siebie i za to organizatorom należą się podziękowania i gratulacje &#8211; po prostu bardzo dobra robota. Mam nadzieję, że spotkamy większość tegorocznych uczestników na Lucene Eurocon 2012, czego nam i Wam życzę <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2011/11/14/lucene-eurocon-2011-dzien-drugi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lucene Eurocon 2010</title>
		<link>https://solr.pl/2010/07/12/lucene-eurocon-2010/</link>
					<comments>https://solr.pl/2010/07/12/lucene-eurocon-2010/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 12 Jul 2010 18:21:41 +0000</pubDate>
				<category><![CDATA[Konferencje]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[eurocon]]></category>
		<category><![CDATA[eurocon 2010]]></category>
		<category><![CDATA[field collapsing]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[flexible indexing]]></category>
		<category><![CDATA[guardian]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[integracja]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[near real time]]></category>
		<category><![CDATA[nre]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[solr cloud]]></category>
		<category><![CDATA[tika]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=7</guid>

					<description><![CDATA[Po ogłoszeniu przez Apache Software Fundation zamiaru rezygnacji z organizacji ApacheCon na starym kontynencie nie zostało żadnej konferencji poświęconej projektom spod znaku Apache. Przyroda nie lubi pustki, a co za tym idzie firma Lucid Imagination postanowiła, przy współpracy ze sponsorami,]]></description>
										<content:encoded><![CDATA[<p>Po ogłoszeniu przez <strong>Apache Software Fundation</strong> zamiaru rezygnacji z organizacji ApacheCon na starym kontynencie nie zostało żadnej konferencji poświęconej projektom spod znaku <strong>Apache</strong>. Przyroda nie lubi pustki, a co za tym idzie firma <a href="http://www.lucidimagination.com/" target="_blank" rel="noopener noreferrer">Lucid Imagination</a> postanowiła, przy współpracy ze sponsorami, zorganizować w Pradze pierwszą konferencję poświęconą w całości tematom związanym z Lucene i Solr &#8211; <a href="http://lucene-eurocon.org/" target="_blank" rel="noopener noreferrer">Lucene EuroCon</a>. Ze względu na to, że mieliśmy przyjemność uczestniczyć w tej konferencji postanowiliśmy zdać Wam krótką relację z jej przebiegu.</p>
<p><span id="more-7"></span></p>
<p>Konferencja została przez organizatorów podzielona na dwie części: treningową oraz typowo konferencyjną. O części treningowej nie napiszę wiele, ze względu na to, że nie uczestniczyliśmy w tej części konferencji. Treningi były prowadzone przez dwóch commiterów projektu Lucene/Solr: Erik`a Hatcher`a oraz Grant`a Ingersoll. Więcej informacji dotyczących tematów, jakie były poruszane w tej części konferencji można znaleźć pod adresem <a href="http://lucene-eurocon.org/training.html" target="_blank" rel="noopener noreferrer">http://lucene-eurocon.org/training.html</a>.</p>
<h3>Początek</h3>
<p>Właściwa konferencja zaczęła się w czwartek, 20 maja, od powitania, a następnie dwóch prezentacji: &#8222;<em>The Search Revolution &#8211; How Lucene &amp; Solr Are Changing the World</em>&#8221; poprowadzonej przez CEO Lucid Imagination &#8211; Eric`a Gries (<a href="http://lucene-eurocon.org/slides/The-Search-Revolution-How-Lucene-&amp;-Solr-Are-Changing-the-World_Eric-Gries.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) oraz &#8222;<em>From Publisher To Platform: How The Guardian Used  Content, Search, and Open Source To Build a Powerful New Business Model</em>&#8221; (<a href="http://lucene-eurocon.org/slides/From-Publisher-To%20Platform-the-Guardian_Stephen-Dunn.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prezentowanej przez Stephen`a Dunn, stojącego na czele działu strategii i technologii w wydawnictwie The Guardian. Eric Gries w swojej prezentacji skupił się na rosnącym zapotrzebowaniu na przetwarzanie informacji, ich wyszukiwanie oraz oczywiście projektach Lucene i Solr, które w obu tych przypadkach sprawdzają się znakomicie. Oczywiście nie zabrakło także informacji o rosnącym zainteresowaniu na rynku pracy osobami, które posiadają wiedzę na temat wspomnianych projektów. Nie mógłbym nie wspomnieć, iż zazdroszczę umiejętności zainteresowania słuchaczy i takiego prowadzenia prezentacji. Chylę czoła. Natomiast druga z prezentacji, prowadzona przez Stephen`a Dunn to omówienie nowej platformy developerskiej wydawnictwa The Guardian nazwanej przez twórców &#8222;The Open Platform&#8221; pozwalającej na dostęp do bazy artykułów wydawnictwa The Guardian od 1991 rok, która w tym momencie składa się z około miliona dokumentów i ciągle rośnie. Autor skupił na opisie technicznych szczegółów związanych z implementacją w oparciu o silnik wyszukiwania Solr oraz na tym, co zyskują developerzy korzystając z platformy wydawnictwa.</p>
<p>Następnie konferencja podzieliła się na dwa tory. Ze względu na to, że fizyczna obecność możliwa była tylko na jednej z dwóch prezentacji, będę opisywał tylko te prezentacje na których byłem obecny. Dla ścisłości &#8211; pełna agenda dostępna jest pod adresem <a href="http://lucene-eurocon.org/agenda.html" target="_blank" rel="noopener noreferrer">http://lucene-eurocon.org/agenda.html</a>.</p>
<h3>Tika i przyszłość Lucene</h3>
<p>Dwie pierwsze prezentacje upłynęły pod znakiem &#8222;<em>pierwszej ścieżki</em>&#8222;. Na początek, trochę ciekawych, czasem szczegółowych informacji o produkcie jakim jest <a href="http://http://tika.apache.org/" target="_blank" rel="noopener noreferrer">Tika</a> w prezentacji &#8222;<em>Text and Metadata Extraction with Apache Tika</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Text-and-Metadata-Extraction_Jukka-Zitting.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzonej przez Jukka Zittinga. Trochę informacji ogólnych, założeń oraz rys historyczny powstania projektu. Następnie informacje stricte techniczne włącznie z fragmentami kodu i pokazaniem jak można wykorzystać <em>framework</em>. Ogólnie dobra prezentacja, której słuchało się z punktu widzenia programisty, bardzo fajnie. Brak przerwy i od razu druga prezentacja, prowadzona przez Uwe Schindler`a oraz Simona Willnauer`a, pod intrygującym tytułem &#8222;<em>Lucene Forecast: Version, Unicode, Flex and Modules</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Lucene-Forecast-Version-Unicode-Flex-and-Mod_Willnauer&amp;Schindler.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Z mojego, skromnego punktu widzenia, podczas tej prezentacji otrzymałem ogrom informacji dotyczących przyszłości zarówno Lucene, jak i Solr. Prezentacja zaczęła się tak naprawdę od wyjaśnienia czego dotyczyły ostatnie ruchy w projektach Lucene i Solr, czyli tak naprawdę połączenia developmentu obu projektów, połączenia gron`a commiterów oraz zmiana trybu tworzenia nowych wersji, przynajmniej jeżeli chodzi o Lucene &#8211; mówiąc bardzo krótko, od teraz <em>trunk</em> repozytorium Lucene i Solr odpowiada za przechowywanie rozwojowej wersji projektów (w tym momencie jest to wersja 4.0) oraz to, że wersja 4.0 biblioteki nie będzie wstecznie kompatybilna z poprzednimi wersjami Lucene. Oznacza to również to, iż produkty odparte o Lucene w wersji 3 będą musiały zostać przepisane, ze względu na zmianę API. Dalsze informacje przekazane przez prowadzących były nie mniej ciekawe &#8211; np. plany dodania mechanizmu <em>facetingu</em> znanego z Solr do Lucene. Sporo czasu poświęcono także omówieniu zmian związanych z pełną obsługą Unicode (moduł <em>ICU</em> Lucene) po czym prowadzący przeszli do bardzo ciekawego według mnie tematu, czyli <em>Flexible Indexing</em>. Jednak rozwinięcie tego tematu, jak również dużo więcej informacji o pakiecie <em>ICU</em> w Lucene w kolejnym wpisie.</p>
<p>W czasie trwania dwóch wspomnianych prezentacji, na &#8222;<em>drugiej ścieżce</em>&#8221; trwały dwie inne prezentacje. Poniżej ich tytuły wraz ze slajdami dla osób zainteresowanych. Niestety ze względu na to, że w nich nie uczestniczyłem, nie jestem w stanie powiedzieć na ich temat nic więcej:</p>
<ul>
<li><em>&#8222;Use of Solr at Trovit, A Leading Search Engine For Classified Ads</em>&#8221; prowadzona przez Marc`a Sturlese (<a href="http://lucene-eurocon.org/slides/Use-of-Solr-at-Trovit-Classified-Ads_Marc_Sturlese.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>).</li>
<li>&#8222;<em>Implementing Solr in Online Media As An Alternative to Commercial Search Products</em>&#8221; prowadzona przez Bo Raun`a (<a href="http://lucene-eurocon.org/slides/Implementing-Solr-in-Online-Media_Bo-Raun.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>).</li>
</ul>
<h3>Magia post-procesingu</h3>
<p>Po obiedzie i przerwie zdecydowałem się nie zmieniać ścieżki i obejrzeć prezentację Andrzeja Białeckiego pod tytułem &#8222;<em>Munching and Crunching: Lucene Index Post-processing</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Munching-&amp;-crunching-Lucene-index-post-processing-and-applications_Andrzej-Bialecki.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) i decyzja ta okazała się strzałem w przysłowiową dziesiątkę. Postanowiłem, że w tym momencie wspomnę tylko o czym była prezentacja, ponieważ było w niej tyle ważnych, moim zdaniem informacji, iż nie napisanie oddzielnego tekstu na ten temat będzie grzechem. Przedstawione informacje to głównie możliwości rozdzielania indeksu, czyszczenie, filtrowanie, czyli przechowywanie indeksu w pamięci RAM. Jak już pisałem, więcej na ten temat w oddzielnym wpisie. W tym samym czasie w &#8222;<em>ścieżce drugiej</em>&#8221; odbywała się prezentacja pod tytułem &#8222;<em>Bringing Solr to Drupal: A General, and a Library-Specifix Use Case</em>&#8221; prowadzona przez Peter`a Kiraly (<a href="http://lucene-eurocon.org/slides/Bringing-Solr-to-Drupal-A-General-and-Library-Specific-Use-Case_Peter-Kiraly.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>).</p>
<h3>Solr i NLP</h3>
<p>Kolejną prezentację &#8222;<em>pierwszej ścieżki</em>&#8221; pod tytułem &#8222;<em>Solr Schema Demystified</em>&#8221; prowadzoną przez Uri Boness`a postanowiłem opuścić na rzecz &#8222;<em>Integration of Natural Language Processing tools with Solr</em>&#8221; prowadzoną przez Joan`a Codina-Filbà (<a href="http://lucene-eurocon.org/slides/Integration-of-Natural-Language-Processing-tools-with-Solr_Joan-Codina-Filba.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Prezentacja ciekawa dla osób starających się zintegrować Solr z narzędziami analizy językowej &#8211; zapisywać wyniki zwracane przez te narzędzia i je wykorzystywać. Przedstawionych zostało trochę informacji na temat wykorzystania <a href="http://uima.apache.org/" target="_blank" rel="noopener noreferrer">UIMA</a>, problemów na jakie natrafili programiści oraz w jaki sposób zostały rozwiązane oraz jak wyglądała kategoryzacja wyników przy użyciu <a href="http://search.carrot2.org" target="_blank" rel="noopener noreferrer">Carrot2</a>. Prezentujący pokazywał także różnice pomiędzy lametem, a wynikiem stemmingu, jak rozpoznawano części mowy oraz w jaki sposób zostało to wykorzystane do klasyfikacji, czy komentarz o danym produkcie miał pozytywny, czy negatywny wydźwięk. Wszystko to w kontekście Lucene/Solr oraz rozwiązania wykorzystującego payload`y, jak również bez ich wykorzystania. Szkoda, tylko, że całość została omówiona w kontekście języka hiszpańskiego, ale cóż, nie można mieć wszystkiego <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Przetwarzanie dokumentów</h3>
<p>Ze względu na to, iż na początku dnia usłyszałem co nieco o &#8222;The Open Platform&#8221; wydawnictwa The Guardian, postanowiłem odpuścić sobie prezentację pod tytułem &#8222;<em>Solr in the Wild: The Guardian Open Platform Content API</em>&#8221; prowadzoną przez Graham`a Tackley (<a href="http://lucene-eurocon.org/slides/Solr-In-The-Wild-The-Guardians-Open-Platform-Content-API_Graham-Tackley.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) i zamiast niej posłuchać co ma do powiedzenia Max Charas oraz Karl Jansson, czyli prelegenci &#8222;<em>Modular Document Processing for Solr/Lucene</em>&#8221; (<a href="http://lucene-eurocon.org/slides/A-Pipeline-for-Solr_Charas-Jansson.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Prezentacja, moim zdaniem, była bardziej pokazaniem możliwości produktów kilku sponsorów konferencji, niż czymś mocno odkrywczym, szczególnie patrząc na poziom niektórych, wcześniejszych prezentacji. Prawdę powiedziawszy, trochę wynudziłem się podczas słuchania tej prezentacji, ale może było to wynikiem przeładowania informacjami i ogólnego zmęczenia.</p>
<h3>Wykorzystanie Solr w IBM</h3>
<p>Po kolejnej krótkiej przerwie rozpoczęły się kolejne dwie prezentacje. Mając do wyboru &#8222;<em>Make Your Domain Object Searchable with Hibernate Search</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Making-Your-Domain-Objects-Searchable-with-Hibernate-Search_Gustavo-Fernandes.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzoną przez Gustavo Fernandes`a oraz &#8222;<em>Social and Network Discovery (SaND) over Lucene</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Social-and-Network-Discovery-over-Lucene_Shai-Erera.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzoną przez Shai Erera wybrałem tą drugą. W skrócie, prezentacja dotyczyła aplikacji stworzonej w firmie IBM na potrzeby przeszukiwania dokumentów, ludzi, stron itd, stworzonych wewnątrz wymienionej firmy. Prezentujący pokazał w jaki sposób zostało zaimplementowane wyszukiwanie (co i jak możemy wyszukiwać), jak działa zawężanie wyników (faceting, zawężanie oparte o datę, lokalizację, czy źródło pochodzenia informacji), czy prezentacja relacji pomiędzy osobami, czy dokumentami. Oprócz samego wyszukiwania <em>SaND</em> całkiem ciekawą funkcjonalność &#8211; a mianowicie graf relacji pomiędzy znalezionymi osobami/dokumentami/stronami (slajd 25 pokazuje graf zależności pomiędzy osobami). Prezentacja całkiem ciekawa, aczkolwiek przeprowadzona według mnie chaotycznie, co zakłóciło w pewnym stopniu odbiór informacji.</p>
<h3>Migracja z FAST do Solr</h3>
<p>Będąc już zmęczonym wybrałem ostatnią prezentację tego dnia, czyli &#8222;<em>Key Topics When Migrating From FAST to Solr</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Migrating-FAST-to-Solr_Jan-Hoydah.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzoną przez Jana Høydahl na rzecz prezentacji &#8222;<em>Query by Document: When &#8222;More Like This&#8221; Is Insufficient</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Query-By-Document-When-More-like-this-is-insufficient.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prezentowaną przez Dusan`a Omercevic`a. Ciekawie było posłuchać o niektórych rozwiązaniach, jakie zostały zaimplementowane w <em>FAST</em>, a nie ma ich w Solr oraz jak sobie radzić w przypadku migracji. Jan Høydahl mówił całkiem ciekawie, pokazał różnice pomiędzy obiema technologiami oraz w jaki sposób można radzić sobie przypadku braków niektórych funkcjonalności, zarówno z jednej, jak i z drugiej strony. Co ciekawe, dla osoby, która nie miała doświadczenia komercyjnego z <em>FAST</em>, interesująca sprawa, to informacja, iż większość obróbki danych przygotowywana jest w <em>FAST</em> na etapie indeksowania &#8211; na przykład sortowanie musi być zdefiniowane na etapie indeksowania. Patrząc na <em>FAST</em> widać, czego jeszcze brakuje w Solr &#8211; na przykład pól wielojęzykowych, czy <em>pipeline</em> zintegrowany z silnikiem wyszukiwania. Następnie pokazany został przykładowy proces migracji z <em>FAST</em> do Solr, oczywiście mocno uproszczony, ale pokazujący, jak można ten proces wykonać. Ogólnie, bardzo fajna prezentacja.</p>
<h3>Koniec pierwszego dnia</h3>
<p>Następnie przyszedł czas na 90 minutową przerwę po których odbyło się pięć krótkich prezentacji, już mniej oficjalnych. Ze względu na ich rodzaj, oraz to, że wszyscy byli już bardziej myślami na czeskim festiwalu piwa, na który mieliśmy się udać po prelekcjach jako grupa, postanowiłem, iż tylko je wymienię:</p>
<ul>
<li>&#8222;<em>Social Media Scheduler based on Solr + Hadoop + Amazon EC2</em>&#8221; Pablo Aragón (<a href="http://lucene-eurocon.org/slides/Social-Media-Scheduler-For-Spanish-Blogs_Pablo-Aragon.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>)</li>
<li>&#8222;<em>Introduction to Collaborative Filtering using Mahout</em>&#8221; Frank Scholten (<a href="http://lucene-eurocon.org/slides/Introduction-To-Collaborative-Filtering-Using-Mahout_Frank-Scholten.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>)</li>
<li>&#8222;<em>Enterprise Search meets Enterprise CMS &#8211; TYPO3 and Apache Solr</em>&#8221; Olivier Dobberkau (<a href="http://lucene-eurocon.org/slides/Enterprise-Search-meets-Enterprise-CMS-Apache-Solr-and-TYPO3_Olivier-Dobberkau.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>)</li>
<li>&#8222;<em>BM25 Scoring for Lucene</em>&#8221; Yuval Feinstein (<a href="http://lucene-eurocon.org/slides/BM25-Scoring-For-Lucene_Yuval-Feinstein.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>)</li>
<li>&#8222;<em>How We Scaled Solr to 3+ Billion Documents</em>&#8221; Jason Rutherglen (<a href="http://lucene-eurocon.org/slides/BM25-Scoring-For-Lucene_Yuval-Feinstein.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>)</li>
</ul>
<h3>Dzień drugi</h3>
<p>Drugi dzień konferencji rozpoczął się od krótkiego wstępu poprowadzonego przez Grant`a Ingersoll, po czym rozpoczęła się właściwa część drugiego dnia.</p>
<h3>A więc zaczynamy dzień drugi</h3>
<p>Tak samo, jak w przypadku dnia poprzedniego, na początek dostaliśmy dwie prezentacje: &#8222;<em>Software Disruption: How Open Source, Search, Big Data and Cloud Technology are Disrupting IT</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Software-Disruption-How-Open%20Source-Big-Data-and-The-Cloud-Are-Disrupting-IT_Zack-Urlocker.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzona przez Zack`a Urlocker`a oraz &#8222;<em>Solr 1.5 and Beyond</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Solr-15-and-Beyond_Yonik-Seely.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prowadzona przez Yonik`a Seeley`a. Pierwsza prezentacja, ze względu na swój marketingowy charakter raczej mało mnie interesowała, co nie zmienia faktu, że w jej trakcie przekazane zostały ciekawe informacje na temat rozwoju oprogramowania ze stajni <em>open source</em>. Nie zabrakło również przewidywań na temat kierunków rozwoju oprogramowania i zwrócenia się ku przetwarzaniu w <em>chmurze</em>. Sam prelegent ma na temat <em>open source</em> dużą wiedzę, jako jeden z ojców sukcesu MySQL`a. Druga prezentacja, była z mojego punktu widzenia dużo bardziej ciekawa, ze względu na techniczne zorientowanie. Dotyczyła m.in. kilku kluczowych tematów dla przyszłości Solr &#8211; połączenie z Lucene, rozszerzenie parsera dismax, integrację z Zookeeper`em (tzw. <em>Solr Cloud</em>), wyszukiwanie geograficzne, funkcjonalność <em>field collapsing</em> oraz NRE (<em>near real time</em>) search. Warto podkreślić, iż prezentacja była bardzo ciekawa, choć mówiła o kilku rzeczach o których usłyszeliśmy już podczas tej konferencji (m.in. <em>Solr Cloud</em>, czy połączenie developmentów). Moim zdaniem warto mieć na oku zmiany, jakie zachodzą w Solr, ponieważ przyszłość projektu rysuje się bardzo jasnych barwach, jeżeli tylko wszystko o czym była mowa podczas prezentacji uda się zrealizować, a przecież wiemy, że to nie wszystko co ma się znaleźć w przyszłych wersjach Solr.</p>
<h3>Grant na temat relevance</h3>
<p>I znów konferencja podzieliła się na dwie ścieżki. Wydawało mi się, że więcej zyskam słuchając Grant`a Ingersoll mówiącego o &#8222;<em>Practical Relevance</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Practical-Relevance_Grant-Ingersoll.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>), niż Steve`a Kearns prezentującego &#8222;<em>Building Multilingual Search Based Application</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Building-Multilingual-Search-Based-Applications_Steve-Kearns.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Moim zdaniem się nie pomyliłem. Grant mówił o ogólnie rozumianym poprawianiu jakości wyników wyszukiwania &#8211; w jaki sposób można to robić, czy analizować logi i jak to robić, co można wyciągnąć ze statystyk związanych z wyszukiwaniem i na czym należy się skupić podczas procesu poprawiania jakości. Wspominał o konieczności zbierania informacji od użytkowników, bo to oni docelowo zdecydują o sukcesie, bądź porażce aplikacji. Nie zabrakło również informacji, jak szybko zyskać zadowalające efekty dodając premiowanie dokumentów zawierających frazy składających się z wielu słów. Zbliżając się do końca prezentacji, Grant, mówił o zaawansowanych metodach wpływania na tzw. <em>relevance</em>, czyli o developmencie własnych komponentów odpowiedzialnych za liczenie ważności dokumentów, wspomniał także o projekcie <a href="http://lucene.apache.org/openrelevance" target="_blank" rel="noopener noreferrer">Open Relevance</a> będącym jednym z projektów zawartych w ekosystemie Lucene.</p>
<h3>Lucene Connectors Framework</h3>
<p>Następnie zdecydowałem się zostać w tej samej sali konferencyjnej i posłuchać Karl`a Wright, który mówił na temat Lucene Connectors Framework w prezentacji pod tytułem &#8222;<em>Lucene Connectors Framework: An Introduction</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Lucene-Connectors-Framework-Introduction_Karl-Wright.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). W tym samym czasie uczestnicy konferencji mogli posłuchać Karel Braeckman i prezentacji pod tytułem &#8222;<em>Unlocking a Broadcaster Video Archive Using Solr</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Unlocking-a-broadcaster-archive-using-Solr_Karel-Braeckman.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). Wspomniana prezentacja, to tak naprawdę głównie przedstawienie części framework`a, jego założeń oraz architektury. Dowiedzieliśmy się, że sam framework jest obecnie w trakcie migracji z postaci komercyjnej do postaci <em>open source</em>, dlatego w tym momencie dużo funkcjonalności może nie działać, ponieważ część z nich była oparta o komercyjne biblioteki, które z wiadomych przyczyn nie mogą zostać wykorzystane w projekcie <em>open source</em>. O ile sam framework będzie na pewno ciekawym i przydatnym narzędziem uzupełniającym Solr i Lucene o możliwości takie jak odczyt różnych źródeł danych (zarówno metodą <em>PULL</em>, jak i <em>PUSH</em>), możliwość dostarczania danych periodycznie, czy kompleksowy model bezpieczeństwa, to jednak w tym momencie kod średnio nadaje się do wykorzystania we własnej aplikacji i moim zdaniem, w tym momencie, należy traktować framework jak ciekawostkę &#8211; miejmy nadzieję, że to się szybko zmieni.</p>
<h3>Solr + Zookeeper = Solr Cloud</h3>
<p>Po przerwie na lunch i rozmowach z commiterami m.in. projektów Lucene i Solr rozpoczęła się kolejna sesja prezentacji. Wypoczęty i gotowy na słuchanie kolejnych informacji udałem się na prezentację Mark`a Millera pod tytułem &#8222;<em>Solr in the Cloud</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Solr-In-The-Cloud_Mark-Miller.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>). W sali obok rozpoczynała się w tym samym czasie prezentacja pod tytułem &#8222;<em>The Path to Discovery: Facets and the Scent of Information</em>&#8221; (<a href="http://lucene-eurocon.org/slides/The-Path-To-Discovery-Facets-and-the-Scent-Of-Information_Tate-&amp;-Olafsson.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) której prelegentami byli Tyler Tate oraz Stefan Olafsson. Jak można się domyślić tematem przewodnim prezentacji był tzw. <em>Solr Cloud</em>, czyli rozproszona farma instancji Solr zarządzanie tą instalacją przy pomocy <em>Zookeeper`a</em>. Zaczęło się od przedstawienia architektury master &#8211; slave oraz jak ta architektura wygląda w przypadku rozproszenia indeksu pomiędzy wiele shardów wraz z &#8222;rysem historycznym&#8221;, czyli wspomnieniem o skryptach powłoki i nowej, opartej o język Java replikacji indeksów. Następnie, Mark Miller, przeszedł do opisania głównych założeń, które leżą u podstaw integracji z <em>Zookeeper</em>`<em>em</em>, czyli scentralizowana konfiguracja, <em>fault tolerance</em>, możliwość automatycznego usuwania i dodawania kolejnych instancji Solr, czy wreszcie wsparcie dla sprawdzania dostępności poszczególnych instancji. Omówione zostało co do tej pory zostało zrobione w związku z integracją z <em>Zookeeper`em</em>, co jeszcze na pewno zostało do zrobienia oraz co jest w planach w dalszej przyszłości. Oprócz spraw związanych z zarządzaniem instancjami Mark Miller przedstawił nowość w Solr 1.4, czyli tzw. LoadBalanced Http Solr Server. Podsumowując, prezentacja bardzo ciekawa, pokazująca kolejną ścieżkę rozwoju Solr &#8211; jest na co czekać.</p>
<h3>Chwila wytchnienia</h3>
<p>Podczas, kiedy my rozmawialiśmy z innymi uczestnikami konferencji i nawiązywaliśmy kontakty, trwały dwie kolejne prezentacje:</p>
<ul>
<li>&#8222;<em>Neural Networks, Newspapers and Solr &#8211; A short tour through extending Solr for real-world text-classification</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Neural-Networks-Newspapers-and-Solr_Sven-Maurmann.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prezentowana przez Sven`a Maurmann`a</li>
<li>&#8222;<em>Rapid Prototyping</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Rapid-Prototyping-with-Solr_Erik-Hatcher.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>) prezentowana przez Eric`a Hatcher`a</li>
</ul>
<h3>To już prawie koniec</h3>
<p>Ostatnimi prezentacjami, jakie miały być pokazane na konferencji były &#8222;<em>Combatting Information Overload &#8211; Search in Military Information Gathering Systems</em>&#8221; (<a href="http://lucene-eurocon.org/slides/Combatting-Information-Overload-Search-in-Military-Information-Gathering-Systems_Alexandra-Larsson.pdf" target="_blank" rel="noopener noreferrer">slajdy</a>), której prelegentem była pani Alexandra Larsson, kapitan szwedzkich sił powietrznych oraz &#8222;<em>European Language Analysis with Hunspell</em>&#8221; prowadzoną przez Chris`a Male. Po wysłuchaniu części tej drugiej prezentacji zdecydowałem się przejść do przyległej sali konferencyjnej i posłuchać o tym, jak szwedzkie służby wykorzystują Lucene i Solr w swoich systemach analitycznych. Ze względu nie wysłuchanie żadnej z prezentacji od początku do końca postanowiłem nie opisywać żadnej z nich, pomimo tego, że moim zdaniem pani kapitan mówiła o bardzo ciekawym zastosowaniu obu projektów, które to słowa wspomagała przykładami w postaci zrzutów ekranu z aplikacji i tłumaczenia w jaki sposób współgrają ze sobą poszczególne elementy.</p>
<p>Ostatnim akcentem, kończącym Lucene Eurocon 2010, było kilka słów Granta Ingersoll, losowanie wejściówki na Lucene Revolution w Bostonie oraz losowanie kilku egzemplarzy książek, czyli coś dla ludu <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Podsumowanie</h3>
<p>Podsumowując całe wydarzenie jestem zadowolony z tego, że mogłem w nim uczestniczyć. Ciekawe prezentacje, morze pomysłów i planów oraz upewnienie społeczności w tym, że Lucene i Solr są dojrzałymi produktami, które nie spoczęły na laurach i pomimo rosnącego zainteresowania ich obecnym kształtem mają za sobą ludzi, którzy dbają o to, żeby projekty nie stały w miejscu. Mam nadzieję, że będzie mi dane uczestniczyć w Lucene Eurocon 2011 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />
</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 286px; width: 1px; height: 1px; overflow: hidden;"><a href="http://lucene-eurocon.org/sessions-track1-day1.html#1"><strong>Text  and Metadata Extraction with Apache Tika</strong></a></div>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2010/07/12/lucene-eurocon-2010/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
