<?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>indexing &#8211; Solr.pl</title>
	<atom:link href="https://solr.pl/tag/indexing/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>Fri, 13 Nov 2020 21:22:51 +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>SolrCloud: co się dzieje, kiedy ZooKeeper pada &#8211; część druga</title>
		<link>https://solr.pl/2015/06/29/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada-czesc-druga/</link>
					<comments>https://solr.pl/2015/06/29/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada-czesc-druga/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 29 Jun 2015 20:22:22 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[solr]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=668</guid>

					<description><![CDATA[W poprzednim artykule na temat SolrCloud poruszyliśmy problem awarii ZooKeepera oraz jak reaguje Solr podczas obsługiwania zapytań. W dzisiejszym wpisie przyjrzymy się bliżej, dlaczego dzieje się tak, że jesteśmy w stanie zadawać zapytania, a nie jesteśmy w stanie indeksować danych.]]></description>
										<content:encoded><![CDATA[<p>W <a href="http://solr.pl/2013/12/02/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada/">poprzednim artykule</a> na temat SolrCloud poruszyliśmy problem awarii ZooKeepera oraz jak reaguje Solr podczas obsługiwania zapytań. W dzisiejszym wpisie przyjrzymy się bliżej, dlaczego dzieje się tak, że jesteśmy w stanie zadawać zapytania, a nie jesteśmy w stanie indeksować danych.</p>
<p><span id="more-668"></span></p>
<h3>Krótkie przypomnienie</h3>
<p>W artykule <a href="http://solr.pl/2013/12/02/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada/">SolrCloud – co się dzieje, kiedy ZooKeeper pada?</a> pokazaliśmy, iż w przypadku awarii ZooKeeper&#8217;a jesteśmy w stanie bezproblemowo zadawać zapytania i dostawać poprawne wyniki wyszukiwania. Oczywiście jest to prawda do chwili, kiedy nie zmieniamy niczego w topologi klastra. Niestety, w przypadku indeksowania, nie jesteśmy w stanie zmieniać indeksu kiedy SolrCloud nie ma aktywnego połączenia z ZooKeeperem, lub kiedy nie ma quorum. Przyjrzyjmy się zatem dlaczego tak się dzieje.</p>
<h3>Dlaczego możemy zadawać zapytania?</h3>
<p>Sytuacja jest dość prosta &#8211; zadawanie zapytań nie jest operacją zmieniającą stan klastra SolrCloud. Jedyne co Solr musi zrobić, to przyjąć zapytanie i wysłać je do odpowiednich instancji Solr. Oczywiście topologia klastra nie jest odczytywana przy każdym zapytaniu, a w związku z tym nie mając aktywnego połączenia z ZooKeeper&#8217;em lub gdy nie ma quorum jesteśmy w stanie bez problemów zadawać zapytania.</p>
<p>Jest jeszcze jedna ciekawa opcja, chociaż dużo osób o tym nie wie &#8211; możliwość zwracania tylko częściowych wyników wyszukiwania w momencie, kiedy część kolekcji nie jest dostępna. Dodając parametr <em>shards.tolerant=true</em> do naszych zapytań informujemy Solr, że jesteśmy w stanie żyć w częściowymi wynikami, np. wtedy, gdy część kolekcji jest niedostępna. Domyślnie Solr po prostu zwróci błąd.</p>
<h3>Dlaczego nie możemy indeksować danych?</h3>
<p>Dlaczego nie możemy indeksować danych, jeżeli nie ma połączenia z ZooKeeper&#8217;em lub gdy nie ma quorum? Wszystkiemu winien jest brak wystarczającej ilości informacji, aby indeksacja mogła zostać przeprowadzona poprawnie. Dokładniej &#8211; Solr (potencjalnie) nie ma informacji o aktualnym stanie klastra, a co za tym idzie nie jest w stanie poprawnie wyliczyć, gdzie ma zostać umieszczony dokument, czy które core&#8217;y, na których instancjach Solr są replikami, a które leaderami kolekcji. Wszystko to powoduje, że indeksacja dokumentów nie jest możliwa.</p>
<p>Generalnie, warto pamiętać, iż operacje wymagające aktualizacji stanu Solr, czy też aktualizacji danych, które znajdują się z ZooKeeper nie będą możliwe do wykonania w wypadku braku kworum ZooKeepera (w naszym wypadku braku pojedynczego serwera ZooKeeper).</p>
<p>Oczywiście poprawność tego co napisaliśmy powyżej bardzo łatwo to sprawdzić i właśnie tym zajmiemy się w dalszej części wpisu.</p>
<h4>Uruchamiamy ZooKeepera</h4>
<p>Krok bardzo prosty. Do testów wystarczy nam pojedyncza instancja ZooKeepera uruchomiona w następujący sposób:</p>
<pre class="brush:xml">bin/zkServer.sh start
</pre>
<p>Na konsoli powinniśmy zobaczyć następujące informacje:</p>
<pre class="brush:xml">JMX enabled by default
Using config: /Users/gro/Solry/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
</pre>
<p>I tym samym mamy działającą instancję ZooKeepera.</p>
<h4>Uruchamiamy dwie instancje Solr</h4>
<p>Do testów wykorzystaliśmy najnowszą, dostępną wersję Solr <em>5.2.1</em>. Do uruchomienia dwóch instancji Solr korzystamy z następującego polecenia:</p>
<pre class="brush:xml">bin/solr start -e cloud -z localhost:2181
</pre>
<p>Podczas uruchamiania wybieramy, iż chcemy mieć 2 instancje, porty na których będą działać nie są ważne.</p>
<p>Dodatkowo wybraliśmy następujące opcje:</p>
<ul>
<li>nazwa kolekcji: <em>gettingstarted</em></li>
<li>liczba shardów: <em>2</em></li>
<li>liczba replik: <em>1</em></li>
<li>konfiguracja kolekcji: <em>data_driven_schema_configs</em></li>
</ul>
<p>Całość wyglądała mniej, więcej tak:</p>
<p><img decoding="async" class="aligncenter  wp-image-3617" src="http://solr.pl/wp-content/uploads/2015/06/zookeeper_kolekcja.png" alt="Zrzut ekranu 2015-06-21 o 11.13.31" width="683" height="58"></p>
<h4>Dodajemy kilka dokumentów</h4>
<p>Żeby sprawdzić, czy Solr na pewno działa dodajmy kilka dokumentów korzystając z następującego polecenia:</p>
<pre class="brush:xml">bin/post -c gettingstarted docs/
</pre>
<p>Jeżeli wszystko poszło zgodnie z planem, to na poniższe polecenie:</p>
<pre class="brush:xml">curl -XGET 'localhost:8983/solr/gettingstarted/select?indent=true&amp;q=*:*&amp;rows=0'
</pre>
<p>powinniśmy dostać następującą odpowiedź:</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
 &lt;lst name="responseHeader"&gt;
  &lt;int name="status"&gt;0&lt;/int&gt;
  &lt;int name="QTime"&gt;38&lt;/int&gt;
  &lt;lst name="params"&gt;
   &lt;str name="q"&gt;*:*&lt;/str&gt;
   &lt;str name="indent"&gt;true&lt;/str&gt;
   &lt;str name="rows"&gt;0&lt;/str&gt;
  &lt;/lst&gt;
 &lt;/lst&gt;
 &lt;result name="response" numFound="3577" start="0" maxScore="1.0"&gt;
 &lt;/result&gt;
&lt;/response&gt;
</pre>
<p>Wszystko działa jak należy.</p>
<h4>Czas na indeksowanie z wyłączonym Zookeeperem</h4>
<p>Zatrzymajmy zatem naszą instancję ZooKeepera poleceniem:</p>
<pre class="brush:xml">bin/zkServer.sh stop
</pre>
<p>I spróbujmy jeszcze raz uruchomić następujące polecenie:</p>
<pre class="brush:xml">bin/post -c gettingstarted docs/
</pre>
<p>Tym razem, zamiast informacji o tym, że dokumenty są indeksowane powinniśmy widzieć coś w tym stylu:</p>
<pre class="brush:xml">POSTing file index.html (text/html) to [base]/extract
SimplePostTool: WARNING: Solr returned an error #503 (Service Unavailable) for url: http://localhost:8983/solr/gettingstarted/update/extract?resource.name=%2FUsers%2Fgro%2FSolry%2F5.2.1%2Fdocs%2Findex.html&amp;literal.id=%2FUsers%2Fgro%2FSolry%2F5.2.1%2Fdocs%2Findex.html
SimplePostTool: WARNING: Response: &lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
&lt;lst name="responseHeader"&gt;&lt;int name="status"&gt;503&lt;/int&gt;&lt;int name="QTime"&gt;3&lt;/int&gt;&lt;/lst&gt;&lt;lst name="error"&gt;&lt;str name="msg"&gt;Cannot talk to ZooKeeper - Updates are disabled.&lt;/str&gt;&lt;int name="code"&gt;503&lt;/int&gt;&lt;/lst&gt;
&lt;/response&gt;
</pre>
<p>Jak widać, brak ZooKeepera skutkuje niemożliwością indeksowania. Oczywiście zadawanie zapytań wciąż działa. Ponowne włączenie ZooKeepera i rozpoczęcie indeksowania także będzie skutkowało bezproblemowym indeksowaniem, ze względu na to, że Solr ponownie się z nim połączy.</p>
<h3>Krótkie podsumowanie</h3>
<p>Oczywiście ten i <a href="http://solr.pl/2013/12/02/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada/">poprzedni</a> tekst dotykają tylko wierzchołka góry lodowej i pokazuje co się dzieje, gdy brakuje ZooKeepera. Bardzo dobry test dotyczący tego jak SolrCloud zachowuje się nie tylko podczas awarii ZooKeepera, ale także podczas problemów z infrastrukturą sieciową można znaleźć na <a href="http://lucidworks.com/blog/call-maybe-solrcloud-jepsen-flaky-networks/">http://lucidworks.com/blog/call-maybe-solrcloud-jepsen-flaky-networks/</a>. Polecamy wszystkim, którzy mają ochotę dowiedzieć się, jak SolrCloud zachowa się w sytuacjach awaryjnych.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2015/06/29/solrcloud-co-sie-dzieje-kiedy-zookeeper-pada-czesc-druga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Automatyczne generowanie identyfikatora dokumentu w Solr 4.x</title>
		<link>https://solr.pl/2013/07/08/automatyczne-generowanie-identyfikatora-dokumentu-w-solr-4-x/</link>
					<comments>https://solr.pl/2013/07/08/automatyczne-generowanie-identyfikatora-dokumentu-w-solr-4-x/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 08 Jul 2013 10:13:49 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[solr]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=517</guid>

					<description><![CDATA[Kilka dni temu dostałem pytanie odnośnie automatycznego generowania identyfikatorów dokumentów w Solr 4.0 oraz nowszych. Postanowiliśmy napisać krótki wpis o tym, jak wygenerować identyfikator dokumentu automatycznie, korzystając z Solr 4.3. Struktura danych Struktura danych (sekcja fields pliku schema.xml) wygląda następująco:]]></description>
										<content:encoded><![CDATA[<p>Kilka dni temu dostałem pytanie odnośnie automatycznego generowania identyfikatorów dokumentów w Solr 4.0 oraz nowszych. Postanowiliśmy napisać krótki wpis o tym, jak wygenerować identyfikator dokumentu automatycznie, korzystając z Solr 4.3.</p>
<p><span id="more-517"></span></p>
<h3>Struktura danych</h3>
<p>Struktura danych (sekcja <em>fields</em> pliku <em>schema.xml</em>) wygląda następująco:
</p>
<pre class="brush:xml">&lt;fields&gt;
 &lt;field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /&gt;
 &lt;field name="name" type="text_general" indexed="true" stored="true"/&gt;
 &lt;field name="_version_" type="long" indexed="true" stored="true"/&gt;
&lt;/fields&gt;</pre>
<p>Dodatkowo w pliku <em>schema.xml</em> definiujemy, które pole będzie przechowywać unikalny identyfikator:
</p>
<pre class="brush:xml">&lt;uniqueKey&gt;id&lt;/uniqueKey&gt;</pre>
<h3>Konfiguracja Solr</h3>
<p>Następnie musimy zmodyfikować konfigurację Solr dodając odpowiedni UpdateRequestProcessorChain do pliku <em>solrconfig.xml</em>:
</p>
<pre class="brush:xml">&lt;updateRequestProcessorChain&gt;
 &lt;processor class="solr.UUIDUpdateProcessorFactory"&gt;
  &lt;str name="fieldName"&gt;id&lt;/str&gt;
 &lt;/processor&gt;
 &lt;processor class="solr.LogUpdateProcessorFactory" /&gt;
 &lt;processor class="solr.RunUpdateProcessorFactory" /&gt;
&lt;/updateRequestProcessorChain&gt;</pre>
<p>Tym samym informujemy Solr, iż chcemy aby pole <em>id</em>&nbsp;było automatycznie wygenerowane.</p>
<h3>Mały test</h3>
<p>Przetestujmy to co zrobiliśmy. W tym celu wyślemy jeden dokument do zaindeksowania za pomocą następującego polecenia:
</p>
<pre class="brush:bash">curl -XPOST 'localhost:8983/solr/update?commit=true' --data-binary '&lt;add&gt;&lt;doc&gt;&lt;field name="name"&gt;Test&lt;/field&gt;&lt;/doc&gt;&lt;/add&gt;' -H 'Content-type:application/xml'</pre>
<p>Jeżeli wszystko poszło dobrze dokument został zaindeksowany. W związku z tym sprawdźmy, czy wygenerowany został identyfikator. Robimy to za pomocą następującego polecenia:
</p>
<pre class="brush:bash">curl -XGET 'localhost:8983/solr/select?q=*:*&amp;indent=true'</pre>
<p>Odpowiedź na to zapytanie powinna wyglądać 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;
  &lt;int name="status"&gt;0&lt;/int&gt;
  &lt;int name="QTime"&gt;0&lt;/int&gt;
  &lt;lst name="params"&gt;
   &lt;str name="indent"&gt;true&lt;/str&gt;
   &lt;str name="q"&gt;*:*&lt;/str&gt;
  &lt;/lst&gt;
 &lt;/lst&gt;
 &lt;result name="response" numFound="1" start="0"&gt;
  &lt;doc&gt;
   &lt;str name="name"&gt;Test&lt;/str&gt;
   &lt;str name="id"&gt;1cdee8b4-c42d-4101-8301-4dc350a4d522&lt;/str&gt;
   &lt;long name="_version_"&gt;1439726523307261952&lt;/long&gt;
  &lt;/doc&gt;
 &lt;/result&gt;
&lt;/response&gt;</pre>
<p>Jak widać, identyfikator dokumentu został automatycznie wygenerowany. Jeżeli teraz uruchomilibyśmy indeksowanie jeszcze raz, czyli wykonali polecenie:
</p>
<pre class="brush:bash">curl -XPOST 'localhost:8983/solr/update?commit=true' --data-binary '&lt;add&gt;&lt;doc&gt;&lt;field name="name"&gt;Test&lt;/field&gt;&lt;/doc&gt;&lt;/add&gt;' -H 'Content-type:application/xml'</pre>
<p>A następnie znów wykonali zapytanie:
</p>
<pre>curl -XGET 'localhost:8983/solr/select?q=*:*&amp;indent=true'</pre>
<p>W odpowiedzi otrzymalibyśmy dwa dokumenty:
</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;response&gt;
 &lt;lst name="responseHeader"&gt;
  &lt;int name="status"&gt;0&lt;/int&gt;
  &lt;int name="QTime"&gt;1&lt;/int&gt;
  &lt;lst name="params"&gt;
   &lt;str name="indent"&gt;true&lt;/str&gt;
   &lt;str name="q"&gt;*:*&lt;/str&gt;
  &lt;/lst&gt;
 &lt;/lst&gt;
 &lt;result name="response" numFound="2" start="0"&gt;
  &lt;doc&gt;
   &lt;str name="name"&gt;Test&lt;/str&gt;
   &lt;str name="id"&gt;1cdee8b4-c42d-4101-8301-4dc350a4d522&lt;/str&gt;
   &lt;long name="_version_"&gt;1439726523307261952&lt;/long&gt;
  &lt;/doc&gt;
  &lt;doc&gt;
   &lt;str name="name"&gt;Test&lt;/str&gt;
   &lt;str name="id"&gt;9bedcb5f-1b71-4ab7-80a9-9882a6bf319e&lt;/str&gt;
   &lt;long name="_version_"&gt;1439726693819351040&lt;/long&gt;
  &lt;/doc&gt;
 &lt;/result&gt;
&lt;/response&gt;</pre>
<p>Oba dokumenty mają zupełnie różne identyfikatory, które zostały wygenerowane automatycznie.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2013/07/08/automatyczne-generowanie-identyfikatora-dokumentu-w-solr-4-x/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Kiedy należy commitować ?</title>
		<link>https://solr.pl/2011/06/27/kiedy-nalezy-commitowac/</link>
					<comments>https://solr.pl/2011/06/27/kiedy-nalezy-commitowac/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 27 Jun 2011 17:49:03 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[dane]]></category>
		<category><![CDATA[indeksowanie]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[udostępnianie]]></category>
		<category><![CDATA[udostępnianie danych]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=250</guid>

					<description><![CDATA[Pytanie jakie ostatnio sobie zadałem, wydaje się jednym z tych na które odpowiedź powinna być szybka i bezproblemowa. Tak więc, kiedy należy wysyłać polecenie commit do Solr (lub Lucene) ? Pomimo prostoty pytania, odpowiedź nie jest moim zdaniem jednoznaczna. Aby]]></description>
										<content:encoded><![CDATA[<p>Pytanie jakie ostatnio sobie zadałem, wydaje się jednym z tych na które odpowiedź powinna być szybka i bezproblemowa. Tak więc, kiedy należy wysyłać polecenie <em>commit</em> do Solr (lub Lucene) ? Pomimo prostoty pytania, odpowiedź nie jest moim zdaniem jednoznaczna.</p>
<p><span id="more-250"></span></p>
<p>Aby odpowiedzieć sobie na pytanie, kiedy należy wysyłać polecenie <em>commit</em>, należy przyjrzeć się kilku różnym wariantom indeksowania danych oraz jak szybko chcemy te dane udostępniać. Przyglądając się typowym wdrożeniom, którymi miałem do czynienia, można wyróżnić następujące kategorie:</p>
<h3>Dane mogą być udostępnione jedynie po całkowitej aktualizacji indeksu</h3>
<p>Sytuacja teoretycznie i praktycznie bardzo prosta. Commitujemy dopiero kiedy skończą się dokumenty do zaindeksowania.</p>
<h3>Dane mogą być udostępniane partiami, bez konieczności czekania na pełną aktualizację indeksu</h3>
<p>Tutaj mamy trzy możliwości:</p>
<ol>
<li>Jeżeli nie ma znaczenia czy dane będą udostępnianie partiami, czy nie możemy wysyłać polecenie <em>commit</em> dopiero po przesłaniu ostatniego dokuementu.</li>
<li>Jeżeli chcemy udostępniać dane partiami, nasza aplikacja może wysłać polecenie <em>commit</em> co pewien czas.</li>
<li>Jeżeli nie chcemy wysyłać polecenia <em>commit</em> z aplikacji, możemy powiedzieć, aby Solr robił to za nas, czyli po prostu skorzystać z mechanizmu <em>autocommit</em>.</li>
</ol>
<h3>Dane muszą być zaindeksowane najszybciej jak to możliwe</h3>
<p>Jeżeli dane mają być indeksowane najszybciej jak to jest możliwe (pomijając w tym momencie temat sposobu indeksowania) należy wysyłać polecenie <em>commit</em> dopiero po przesłaniu wszystkich danych. <em>Commit </em>jest dość kosztowny pod względem wydajności i dlatego, w omawianym przypadku, powinien być stosowany jedynie na samym końcu procesu indeksacji.</p>
<h3>Ważne jest, aby dane były publikowane jak najszybciej</h3>
<p>Jest to chyba najtrudniejszy z wymienionych przypadków. Wszystko zależy od tego, jak szybko chcemy mieć dane widoczne na slave&#8217;ach. Na przykład w przypadku systemu CMS, kiedy użytkownik zapisuje edytowaną stronę, chcielibyśmy, aby jej zaktualizowana zawartość dostępna była od razu &#8211; wtedy <em>commit</em> po każdym dokumencie i szybka replikacja jest wskazana.W przypadku dodawania artykułów do sklepu internetowego, można pokusić się o pewne opóźnienie. Takie przypadki można mnożyć w nieskończoność. Należy jednak pamiętać o odpowiednim przygotowaniu zapytań rozgrzewających, aby Solr był przygotowany do obciążenia zapytaniami oraz o tym, aby nie replikować indeksów co 30 sekund, ponieważ może to być przyczyną problemów wydajnościowych.</p>
<p>Osoby zainteresowane bardzo częstą aktualizacją indeksu powinny obserwować to co się dzieje w Lucene i Solr odnośnie NRT (near real time).</p>
<h3>Optymalizacja</h3>
<p>Warto pamiętać też o optymalizacji indeksu. Jeżeli wysyłamy polecenie <em>commit</em> tylko raz, na zakończenie indeksowania warto zastanowić się, czy zamiast <em>commit</em> nie wysyłać <em>optimize</em>. Nasze slave&#8217;y dostaną wtedy zoptymalizowaną wersję indeksu z najnowszymi danymi. Należy jednak pamiętać, iż optymalizacja indeksu jest dłuższa, niż commit.</p>
<h3>Niebezpieczeństwa</h3>
<p>Warto pamiętać, iż odwlekanie operacji <em>commit</em> w nieskończoność wiąże się z niebezpieczeństwem utraty danych, które nie zostały fizycznie zapisane do plików indeksu. Oczywiście nic się z danymi nie stanie, jeżeli Solr zostanie poprawnie wyłączony, natomiast w przypadku awarii maszyny może się zdarzyć sytuacja, kiedy dane które indeksowaliśmy zostaną stracone.</p>
<h3>Podsumowanie</h3>
<p>Jak widać, nie ma jasnej odpowiedzi kiedy należy wysyłać polecenie <em>commit</em> ponieważ zależy to od sytuacji i indywidualnych potrzeb. Należy jednak pamiętać, iż czynności, jakie wykonywane są przez Lucene/Solr po wysłaniu polecenia <em>commit</em> są mocno zasobożerne. Nie korzystajmy z tego polecenia często ponieważ może się okazać, iż zamiast indeksować dane Lucene/Solr spędza większość czasu na przetwarzaniu polecenia <em>commit</em>.</p>
<p>&nbsp;</p>
<p>&nbsp;
</p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 281px; width: 1px; height: 1px; overflow: hidden;">Pomijając temat samego sposobu indeksowania</div>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2011/06/27/kiedy-nalezy-commitowac/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>
