<?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>querying &#8211; Solr.pl</title>
	<atom:link href="https://solr.pl/tag/querying/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>Sat, 14 Nov 2020 11:48:21 +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 i kontrola wykonywania zapytań</title>
		<link>https://solr.pl/2019/01/14/solrcloud-i-kontrola-wykonywania-zapytan/</link>
					<comments>https://solr.pl/2019/01/14/solrcloud-i-kontrola-wykonywania-zapytan/#respond</comments>
		
		<dc:creator><![CDATA[Rafał Kuć]]></dc:creator>
		<pubDate>Mon, 14 Jan 2019 11:47:47 +0000</pubDate>
				<category><![CDATA[Solr]]></category>
		<category><![CDATA[preference]]></category>
		<category><![CDATA[querying]]></category>
		<category><![CDATA[replica]]></category>
		<category><![CDATA[shard]]></category>
		<category><![CDATA[shards]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[solrcloud]]></category>
		<guid isPermaLink="false">http://sematext.solr.pl/?p=772</guid>

					<description><![CDATA[Wraz z Solr 7.0 i wprowadzeniem nowych typów replik, oprócz standardowego typu NRT, pojawiło się naturalne pytanie &#8211; czy możemy kontrolować wykonywanie zapytań? Czy możemy powiedzieć Solr, że chcielibyśmy, aby zapytania były wykonywane na replikach typu PULL lub te repliki]]></description>
										<content:encoded><![CDATA[
<p>Wraz z Solr 7.0 i wprowadzeniem nowych typów replik, oprócz standardowego typu NRT, pojawiło się naturalne pytanie &#8211; czy możemy kontrolować wykonywanie zapytań? Czy możemy powiedzieć Solr, że chcielibyśmy, aby zapytania były wykonywane na replikach typu PULL lub te repliki były priorytetowe. Przyjrzyjmy się zatem możliwościom. </p>



<span id="more-772"></span>



<h2 class="wp-block-heading">Parametr shards</h2>



<p>Jedną z pierwszych możliwości kontroli zapytań jeżeli chodzi o SolrCloud jest parametr <em>shards</em>. Pozwala on na dokładne określenie, które z shardów mają uczestniczyć w wykonywaniu zapytania. Jako wartości parametru możemy przekazywać zarówno nazwy logiczne, jak również nazwy replik, np:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards=shard1</code></pre>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards=shard1,shard2,shard3</code></pre>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards=localhost:6683/solr/test</code></pre>



<p>Pierwsze z powyższych zapytań zostanie przekazane do shardów zgrupowanych pod logiczną nazwą <em>shard1</em>, drugie z zapytań zostanie wykonane na shardach z logicznymi nazwami <em>shard1</em>, <em>shard2</em> oraz <em>shard3</em>. Ostatnie zapytanie zostanie natomiast wykonane na replikach znajdujących się na instancji Solr o adresie <em>localhost:6683</em> na kolekcji <em>test</em>.</p>



<p>Istnieje takie możliwość wskazania alternatywy, tak aby możliwy był load balancing pomiędzy instancjami, np:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards=localhost:6683/solr/test|localhost:7783/solr/test</code></pre>



<p>Powyższe zapytanie zostanie wykonane na instancji działającej na porcie <em>6683</em> lub na instancji działającej na porcie <em>7783</em>. </p>



<h2 class="wp-block-heading">Parametr shards.preference</h2>



<p>Parametr <em>shards</em> daje nam pewne możliwości kontroli, gdzie wykonane zostanie nasze zapytanie. Jednak, aby wykorzystać repliki danego rodzaju musielibyśmy sami pobierać informacje na temat ich lokalizacji, a następnie zadawać odpowiednie zapytanie. Parametr <em>shards.preference</em> wyręcza nas udostępniając możliwość zdefiniowania typu repliki jaki ma mieć priorytet podczas wykonywania zapytania lub/oraz lokalizacji repliki. </p>



<p>Na przykład, aby Solr preferował repliki typu PULL podczas wykonywania zapytania wystarczy, abyśmy dodali do naszego zapytania parametr <em>shards.preference</em> z wartością <em>replica.type:PULL</em>:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards.preference=replica.type:PULL</code></pre>



<p>Oczywiście możemy powiedzieć, aby Solr wykorzystywał najpierw repliki typu PULL, a następnie repliki typu TLOG jeżeli te pierwsze nie są dostępne. Nasze zapytanie wyglądałoby wtedy następująco:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards.preference=replica.type:PULL,replica.type:TLOG</code></pre>



<p>Możemy także powiedzieć, aby Solr najpierw preferował repliki typu PULL, a jak takich nie ma, to te dostępne lokalnie:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards.preference=replica.type:PULL,replica.location:local</code></pre>



<p>Wprowadziliśmy tutaj nową wartość parametru <em>shards.preference</em>, czyli <em>replica.location:local</em>. Określa on preferowaną lokalizację replik i w tym wypadku mówi, aby preferował te znajdujące się lokalnie.</p>



<p>Oczywiście nie jest to jedyna możliwość, jeżeli chodzi o lokalizację replik. Podobnie jak w przypadku parametru <em>shards</em> mamy możliwość wskazania danej instancji Solr, która ma być tą preferowaną. Na przykład, jeżeli chcemy, aby preferowaną maszyną był serwer o adresie <em>192.168.1.1</em> wystarczy zadać następujące zapytanie:</p>



<pre class="wp-block-code"><code class="">http://localhost:8983/solr/test/select?q=*:*&amp;shards.preference=replica.type:PULL,replica.location:http://192.168.1.1</code></pre>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p>Omówione parametry, a szczególnie <em>shards.preference</em> ze swoją wartością <em>replica.type</em> może być szczególnie przydatny w tych przypadkach kiedy w SolrCloud korzystamy z różnego typu replik. Mówiąc Solr, iż do wyszukiwania preferujemy repliki typu PULL lub TLOG możemy zmniejszyć lub wyeliminować obciążenie zapytaniami replik typu NRT, a tym samym zbliżyć się do tego co oferuje Solr w architekturze master &#8211; slave &#8211; podział ról replik. Wszystko to dalej korzystając z SolrCloud i wszystkich udogodnień, które za tym idą. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://solr.pl/2019/01/14/solrcloud-i-kontrola-wykonywania-zapytan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
