<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - system:elasticsearch:exaples</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T10:40:16+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-1"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-2"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-3"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-4"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-5"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-6"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-7"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-1">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:16:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>how to match an array value by it&#039;s key in a key value pair elasticsearch array?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-1</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;how_to_match_an_array_value_by_it_s_key_in_a_key_value_pair_elasticsearch_array&quot;&gt;how to match an array value by it&amp;#039;s key in a key value pair elasticsearch array?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Create empty index &amp;quot;twitter&amp;quot; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XDELETE&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;http://localhost:9200/twitter/&#039;&lt;/span&gt;
$ curl &lt;span class=&quot;re5&quot;&gt;-XPUT&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;http://localhost:9200/twitter/&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
create geo_point mapping for the actual &amp;quot;tweet&amp;quot; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XPUT&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;http://localhost:9200/twitter/tweet/_mapping&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;
{
    &amp;quot;tweet&amp;quot;: {
        &amp;quot;properties&amp;quot;: {
            &amp;quot;db&amp;quot;: {
                &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,
                &amp;quot;properties&amp;quot;: {
                    &amp;quot;@type&amp;quot;: {
                        &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;
                    },
                    &amp;quot;oracle_props&amp;quot;: {
                        &amp;quot;type&amp;quot;: &amp;quot;nested&amp;quot;,
                        &amp;quot;properties&amp;quot;: {
                            &amp;quot;@name&amp;quot;: {
                                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;
                            },
                            &amp;quot;@value&amp;quot;: {
                                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;
                            }
                        }
                    }
                }
            }
        }
    }
}&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Let&amp;#039;s check if the mapping was set &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;$ &lt;/span&gt;curl &lt;span class=&quot;re5&quot;&gt;-XGET&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;http://localhost:9200/twitter/tweet/_mapping?pretty=true&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Post some tweets, with nested data &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XPUT&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;http://localhost:9200/twitter/tweet/1&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{
    &amp;quot;name&amp;quot;: &amp;quot;Athena&amp;quot;,
    &amp;quot;version&amp;quot;: 1,
    &amp;quot;db&amp;quot;: {
        &amp;quot;@type&amp;quot;: &amp;quot;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 64bit&amp;quot;,
        &amp;quot;oracle_props&amp;quot;: [
            {
                &amp;quot;@name&amp;quot;: &amp;quot;open_cursors&amp;quot;,
                &amp;quot;@value&amp;quot;: 4000
            },
            {
                &amp;quot;@name&amp;quot;: &amp;quot;USER_ROLE_PRIVS_COUNT&amp;quot;,
                &amp;quot;@value&amp;quot;: 1
            },
            {
                &amp;quot;@name&amp;quot;: &amp;quot;CREATE_PERMISSION&amp;quot;,
                &amp;quot;@value&amp;quot;: &amp;quot;Y&amp;quot;
            }
        ]
    }
}&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Query nested only &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XGET&lt;/span&gt; localhost:&lt;span class=&quot;nu0&quot;&gt;9200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;twitter&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tweet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;_search &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{
    &amp;quot;query&amp;quot;: {
        &amp;quot;nested&amp;quot; : {
            &amp;quot;path&amp;quot; : &amp;quot;db.oracle_props&amp;quot;,
            &amp;quot;score_mode&amp;quot; : &amp;quot;avg&amp;quot;,
            &amp;quot;query&amp;quot; : {
                &amp;quot;bool&amp;quot; : {
                    &amp;quot;must&amp;quot; : [
                        {
                            &amp;quot;term&amp;quot;: {
                                &amp;quot;db.oracle_props.@name&amp;quot;: &amp;quot;open_cursors&amp;quot;
                            }
                        },
                        {
                            &amp;quot;range&amp;quot;: {
                                &amp;quot;db.oracle_props.@value&amp;quot;: {
                                    &amp;quot;lte&amp;quot;: 4000
                                }
                            }
                        }
                    ]
                }
            }
        }
    }
}&#039;&lt;/span&gt;;&lt;/pre&gt;

&lt;p&gt;
Query &amp;quot;Athena&amp;quot; and &amp;quot;Oracle&amp;quot; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XGET&lt;/span&gt; localhost:&lt;span class=&quot;nu0&quot;&gt;9200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;twitter&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tweet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;_search &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{
    &amp;quot;query&amp;quot; : {
        &amp;quot;bool&amp;quot; : {
            &amp;quot;must&amp;quot; : [
                {
                    &amp;quot;match&amp;quot; : {&amp;quot;tweet.name&amp;quot; : &amp;quot;Athena&amp;quot;}
                },
                {
                    &amp;quot;match&amp;quot; : {&amp;quot;tweet.db.@type&amp;quot; : &amp;quot;Oracle&amp;quot;}
                }
            ]
        }
    }
}&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Combine the former two queries &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ curl &lt;span class=&quot;re5&quot;&gt;-XGET&lt;/span&gt; localhost:&lt;span class=&quot;nu0&quot;&gt;9200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;twitter&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tweet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;_search &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;{
    &amp;quot;query&amp;quot; : {
        &amp;quot;bool&amp;quot; : {
            &amp;quot;must&amp;quot; : [
                {
                    &amp;quot;match&amp;quot; : {&amp;quot;tweet.name&amp;quot; : &amp;quot;Athena&amp;quot;}
                },
                {
                    &amp;quot;match&amp;quot; : {&amp;quot;tweet.db.@type&amp;quot; : &amp;quot;Oracle&amp;quot;}
                },
                {
                    &amp;quot;nested&amp;quot; : {
                        &amp;quot;path&amp;quot; : &amp;quot;db.oracle_props&amp;quot;,
                        &amp;quot;score_mode&amp;quot; : &amp;quot;avg&amp;quot;,
                        &amp;quot;query&amp;quot; : {
                            &amp;quot;bool&amp;quot; : {
                                &amp;quot;must&amp;quot; : [
                                    {
                                        &amp;quot;term&amp;quot;: {
                                            &amp;quot;db.oracle_props.@name&amp;quot;: &amp;quot;open_cursors&amp;quot;
                                        }
                                    },
                                    {
                                        &amp;quot;range&amp;quot;: {
                                            &amp;quot;db.oracle_props.@value&amp;quot;: {
                                                &amp;quot;lte&amp;quot;: 4000
                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                }
            ]
        }
    }
}&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Results as
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
    &amp;quot;took&amp;quot;: 2,
    &amp;quot;timed_out&amp;quot;: false,
    &amp;quot;_shards&amp;quot;: {
        &amp;quot;total&amp;quot;: 5,
        &amp;quot;successful&amp;quot;: 5,
        &amp;quot;failed&amp;quot;: 0
    },
    &amp;quot;hits&amp;quot;: {
        &amp;quot;total&amp;quot;: 1,
        &amp;quot;max_score&amp;quot;: 2.462332,
        &amp;quot;hits&amp;quot;: [
            {
                &amp;quot;_index&amp;quot;: &amp;quot;twitter&amp;quot;,
                &amp;quot;_type&amp;quot;: &amp;quot;tweet&amp;quot;,
                &amp;quot;_id&amp;quot;: &amp;quot;1&amp;quot;,
                &amp;quot;_score&amp;quot;: 2.462332,
                &amp;quot;_source&amp;quot;: {
                    &amp;quot;name&amp;quot;: &amp;quot;Athena&amp;quot;,
                    &amp;quot;version&amp;quot;: 1,
                    &amp;quot;db&amp;quot;: {
                        &amp;quot;@type&amp;quot;: &amp;quot;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 64bit&amp;quot;,
                        &amp;quot;oracle_props&amp;quot;: [
                            {
                                &amp;quot;@name&amp;quot;: &amp;quot;open_cursors&amp;quot;,
                                &amp;quot;@value&amp;quot;: 4000
                            },
                            {
                                &amp;quot;@name&amp;quot;: &amp;quot;USER_ROLE_PRIVS_COUNT&amp;quot;,
                                &amp;quot;@value&amp;quot;: 1
                            },
                            {
                                &amp;quot;@name&amp;quot;: &amp;quot;CREATE_PERMISSION&amp;quot;,
                                &amp;quot;@value&amp;quot;: &amp;quot;Y&amp;quot;
                            }
                        ]
                    }
                }
            }
        ]
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;how to match an array value by it&amp;#039;s key in a key value pair elasticsearch array?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;how_to_match_an_array_value_by_it_s_key_in_a_key_value_pair_elasticsearch_array&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-2">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:16:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Multi word query in elasticsearch with filter?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-2</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;multi_word_query_in_elasticsearch_with_filter&quot;&gt;Multi word query in elasticsearch with filter?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
  &amp;quot;query&amp;quot;: {
    &amp;quot;bool&amp;quot;: {
      &amp;quot;must&amp;quot;: [
        {
          &amp;quot;match&amp;quot;: {
            &amp;quot;Category&amp;quot;: &amp;quot;Sport&amp;quot;
          }
        },
        {
          &amp;quot;multi_match&amp;quot;: {
            &amp;quot;query&amp;quot;: &amp;quot;world series&amp;quot;,
            &amp;quot;type&amp;quot;: &amp;quot;cross_fields&amp;quot;,
            &amp;quot;operator&amp;quot;: &amp;quot;and&amp;quot;,
            &amp;quot;fields&amp;quot;: [
              &amp;quot;Question&amp;quot;,
              &amp;quot;Answer&amp;quot;
            ]
          }
        }
      ],
      &amp;quot;must_not&amp;quot;: [],
      &amp;quot;should&amp;quot;: []
    }
  },
  &amp;quot;from&amp;quot;: 0,
  &amp;quot;size&amp;quot;: 10,
  &amp;quot;sort&amp;quot;: [],
  &amp;quot;aggs&amp;quot;: {}
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Multi word query in elasticsearch with filter?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;multi_word_query_in_elasticsearch_with_filter&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-3">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:16:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Как построить фасетный поиск с помощью счетчиков фасетов?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-3</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;как_построить_фасетный_поиск_с_помощью_счетчиков_фасетов&quot;&gt;Как построить фасетный поиск с помощью счетчиков фасетов?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
   &amp;quot;query&amp;quot;: {
      &amp;quot;and&amp;quot;: [
          {
              &amp;quot;terms&amp;quot;: {&amp;quot;country&amp;quot;: [&amp;quot;be&amp;quot;, &amp;quot;fr&amp;quot;]}             
          },
          {
              &amp;quot;terms&amp;quot;: {&amp;quot;category&amp;quot;: [&amp;quot;books&amp;quot;, &amp;quot;movies&amp;quot;]}
          }
      ]
   }
}&lt;/pre&gt;

&lt;p&gt;
Для счетчиков мы можем использовать встроенные агрегаты из Elasticsearch. Каждый из двух фасетов хранится как одно поле в индексе, поэтому мы можем использовать агрегирование терминов в каждом из этих полей. Агрегация вернет счетчик за значение этого поля.
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
   &amp;quot;query&amp;quot;: {
      &amp;quot;and&amp;quot;: [
          {
              &amp;quot;terms&amp;quot;: {&amp;quot;country&amp;quot;: [&amp;quot;be&amp;quot;, &amp;quot;fr&amp;quot;]}             
          },
          {
              &amp;quot;terms&amp;quot;: {&amp;quot;category&amp;quot;: [&amp;quot;books&amp;quot;, &amp;quot;movies&amp;quot;]}
          }
      ]
   },
   &amp;quot;aggregations&amp;quot;: {
      &amp;quot;countries&amp;quot;: {
         &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;country&amp;quot;}
      },
      &amp;quot;categories&amp;quot;: {
         &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;category&amp;quot;}
      }
   }
}&lt;/pre&gt;

&lt;p&gt;
Если бы вы выполнили этот запрос, вы заметите, что счетчики отключены. В двух не отобранных странах, в Португалии и Бразилии, есть счетчик 0. Хотя есть фактические результаты, если мы хотим их выбрать (из-за ORвнутренней грани). Это происходит потому, что по умолчанию Elasticsearch выполняет свои агрегирования в результирующем наборе. Это означает, что если вы выберете Францию, фильтры другой страны будут иметь счет 0, потому что в результирующем наборе содержатся только элементы из Франции.
&lt;/p&gt;

&lt;p&gt;
Чтобы исправить это, нам нужно дать команду Elasticsearch выполнить агрегацию во всем наборе данных, игнорируя запрос. Мы можем сделать это, определив наши скопления как глобальные .
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
    &amp;quot;query&amp;quot;: {
        &amp;quot;and&amp;quot;: [
            {
                &amp;quot;terms&amp;quot;: {&amp;quot;country&amp;quot;: [&amp;quot;be&amp;quot;, &amp;quot;fr&amp;quot;]}             
            },
            {
                &amp;quot;terms&amp;quot;: {&amp;quot;category&amp;quot;: [&amp;quot;books&amp;quot;, &amp;quot;movies&amp;quot;]}
            }
        ]
   },
   &amp;quot;aggregations&amp;quot;: {
      &amp;quot;all_products&amp;quot;: {
         &amp;quot;global&amp;quot;: {},
         &amp;quot;aggregations&amp;quot;: {
            &amp;quot;countries&amp;quot;: {
               &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;country&amp;quot;}
            },
            &amp;quot;categories&amp;quot;: {
               &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;category&amp;quot;}
            }
         }
      }
   }
}&lt;/pre&gt;

&lt;p&gt;
Если бы мы просто сделали это, наши счетчики всегда были бы одинаковыми, потому что они всегда будут рассчитывать на весь набор данных, независимо от наших фильтров. Наши агрегаты должны стать немного более сложными, чтобы это работало, нам нужно добавить к ним фильтры. Каждое агрегирование должно рассчитывать на набор данных со всеми применяемыми фильтрами, за исключением собственных. Таким образом, агрегация за счет во Франции рассчитывает на набор данных с применением фильтра категории, но не фильтр стран:
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
   &amp;quot;query&amp;quot;: {
       &amp;quot;and&amp;quot;: [
           {
               &amp;quot;terms&amp;quot;: {&amp;quot;country&amp;quot;: [&amp;quot;be&amp;quot;, &amp;quot;fr&amp;quot;]}             
           },
           {
               &amp;quot;terms&amp;quot;: {&amp;quot;category&amp;quot;: [&amp;quot;books&amp;quot;, &amp;quot;movies&amp;quot;]}
           }
       ]
   },
   &amp;quot;aggregations&amp;quot;: {
      &amp;quot;all_products&amp;quot;: {
         &amp;quot;global&amp;quot;: {},
         &amp;quot;aggregations&amp;quot;: {
            &amp;quot;countries&amp;quot;: {
               &amp;quot;filter&amp;quot;: {
                  &amp;quot;and&amp;quot;: [
                     {
                        &amp;quot;terms&amp;quot;: {&amp;quot;category&amp;quot;: [&amp;quot;books&amp;quot;,&amp;quot;movies&amp;quot;]}
                     }
                  ]
               },
               &amp;quot;aggregations&amp;quot;: {
                  &amp;quot;filtered_countries&amp;quot;: {
                     &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;country&amp;quot;}
                  }
               }
            },
            &amp;quot;categories&amp;quot;: {
               &amp;quot;filter&amp;quot;: {
                  &amp;quot;and&amp;quot;: [
                     {
                        &amp;quot;terms&amp;quot;: {&amp;quot;country&amp;quot;: [&amp;quot;be&amp;quot;,&amp;quot;fr&amp;quot;]}
                     }
                  ]
               },
               &amp;quot;aggregations&amp;quot;: {
                  &amp;quot;filtered_categories&amp;quot;: {
                     &amp;quot;terms&amp;quot;: {&amp;quot;field&amp;quot;: &amp;quot;category&amp;quot;}
                  }
               }
            }
         }
      }
   }
}&lt;/pre&gt;

&lt;p&gt;
Вывод
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
   &amp;quot;took&amp;quot;: 153,
   &amp;quot;timed_out&amp;quot;: false,
   &amp;quot;_shards&amp;quot;: {
      &amp;quot;total&amp;quot;: 5,
      &amp;quot;successful&amp;quot;: 5,
      &amp;quot;failed&amp;quot;: 0
   },
   &amp;quot;hits&amp;quot;: {
      &amp;quot;total&amp;quot;: 3,
      &amp;quot;max_score&amp;quot;: 0,
      &amp;quot;hits&amp;quot;: [&amp;quot;...&amp;quot;]
   },
   &amp;quot;aggregations&amp;quot;: {
      &amp;quot;all_products&amp;quot;: {
         &amp;quot;doc_count&amp;quot;: 21,
         &amp;quot;filterted categories&amp;quot;: {
            &amp;quot;doc_count&amp;quot;: 13,
            &amp;quot;categories&amp;quot;: {
               &amp;quot;doc_count_error_upper_bound&amp;quot;: 0,
               &amp;quot;sum_other_doc_count&amp;quot;: 0,
               &amp;quot;buckets&amp;quot;: [
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;movies&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 6
                  },
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;music&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 4
                  },
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;books&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 3
                  }
               ]
            }
         },
         &amp;quot;filtered_countries&amp;quot;: {
            &amp;quot;doc_count&amp;quot;: 15,
            &amp;quot;countries&amp;quot;: {
               &amp;quot;doc_count_error_upper_bound&amp;quot;: 0,
               &amp;quot;sum_other_doc_count&amp;quot;: 0,
               &amp;quot;buckets&amp;quot;: [
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;fr&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 6
                  },
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;br&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 4
                  },
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;be&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 3
                  },
                  {
                     &amp;quot;key&amp;quot;: &amp;quot;pt&amp;quot;,
                     &amp;quot;doc_count&amp;quot;: 2
                  }
               ]
            }
         }
      }
   }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0444\u0430\u0441\u0435\u0442\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0444\u0430\u0441\u0435\u0442\u043e\u0432?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a_\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c_\u0444\u0430\u0441\u0435\u0442\u043d\u044b\u0439_\u043f\u043e\u0438\u0441\u043a_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432_\u0444\u0430\u0441\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-6752&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;yii2_framework&quot;&gt;Yii2 framework&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Применяется модуль: &lt;a href=&quot;https://github.com/Mirocow/yii2-elasticsearch&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/Mirocow/yii2-elasticsearch&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/Mirocow/yii2-elasticsearch&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$terms&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;terms&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;categories.name&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;my category&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$nested&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;nested&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;string_facet&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
        QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;term&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;string_facet.facet_name&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;value&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;boost&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;term&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;string_facet.facet_value&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;value&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;boost&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; QueryHelper&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;should&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$nested&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yii2 framework&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yii2_framework&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;6753-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-4">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:17:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How to search for tags?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-4</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;how_to_search_for_tags&quot;&gt;How to search for tags?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
 &amp;quot;query&amp;quot;: {
    &amp;quot;bool&amp;quot;: {
      &amp;quot;should&amp;quot;: [
        {
          &amp;quot;match&amp;quot;: {
            &amp;quot;keyword&amp;quot;: {
              &amp;quot;query&amp;quot;: &amp;quot;abstract, background&amp;quot;
            }
          }
        }
      ]
    }
  }
}  &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;How to search for tags?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;how_to_search_for_tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-312&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;mapping&quot;&gt;Mapping&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;PUT /freevects
{
  &amp;quot;mappings&amp;quot;: {
    &amp;quot;photos&amp;quot;: {
      &amp;quot;properties&amp;quot;: {
        &amp;quot;title&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;,
          &amp;quot;boost&amp;quot;: 1.9,
          &amp;quot;analyzer&amp;quot;: &amp;quot;standard&amp;quot;
        },
        &amp;quot;keyword&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;,
          &amp;quot;boost&amp;quot;: 1.4
        },
        &amp;quot;category&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;,
          &amp;quot;index&amp;quot;: false
        },
        &amp;quot;quality&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;short&amp;quot;,
          &amp;quot;index&amp;quot;: false,
          &amp;quot;boost&amp;quot;: 1.1
        },
        &amp;quot;downloads&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,
          &amp;quot;index&amp;quot;: false,
          &amp;quot;boost&amp;quot;: 1.1
        },
        &amp;quot;likes&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;,
          &amp;quot;index&amp;quot;: false,
          &amp;quot;boost&amp;quot;: 1
        },
        &amp;quot;filename&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;,
          &amp;quot;index&amp;quot;: false
        },
        &amp;quot;type&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;keyword&amp;quot;,
          &amp;quot;index&amp;quot;: false
        },
        &amp;quot;free&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;short&amp;quot;,
          &amp;quot;index&amp;quot;: false
        },
        &amp;quot;created&amp;quot;: {
          &amp;quot;type&amp;quot;: &amp;quot;date&amp;quot;,
          &amp;quot;index&amp;quot;: false
        }
      }
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mapping&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mapping&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;313-1388&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;query&quot;&gt;Query&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
  &amp;quot;query&amp;quot;: {
    &amp;quot;bool&amp;quot;: {
      &amp;quot;should&amp;quot;: [
        {
          &amp;quot;match&amp;quot;: {
            &amp;quot;keyword&amp;quot;: &amp;quot;abstract&amp;quot;
          }
        },
        {
          &amp;quot;match&amp;quot;: {
            &amp;quot;keyword&amp;quot;: &amp;quot;background&amp;quot;
          }
        }
      ]
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Query&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;query&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1389-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-5">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:17:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Searching for documents with arrays of objects?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-5</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;searching_for_documents_with_arrays_of_objects&quot;&gt;Searching for documents with arrays of objects?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
    &amp;quot;properties&amp;quot;: {
        &amp;quot;tags&amp;quot;: {
            &amp;quot;properties&amp;quot;: {
                &amp;quot;tag&amp;quot;: {
                    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;
                },
                &amp;quot;tagtype&amp;quot;: {
                    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;
                }
            }
        }
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Searching for documents with arrays of objects?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;searching_for_documents_with_arrays_of_objects&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-6">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:17:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>How use IN equivalent operator in ElasticSearch?</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-6</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;how_use_in_equivalent_operator_in_elasticsearch&quot;&gt;How use IN equivalent operator in ElasticSearch?&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code sql&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;SELECT&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;FROM&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TABLE&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;WHERE&lt;/span&gt; id &lt;span class=&quot;kw1&quot;&gt;IN&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;

&lt;p&gt;
The equivalent Elasticsearch 1.x filter would be:
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
  &amp;quot;query&amp;quot; : {
    &amp;quot;filtered&amp;quot; : {
      &amp;quot;filter&amp;quot; : {
        &amp;quot;terms&amp;quot; : {
          &amp;quot;id&amp;quot; : [1, 2, 3]
        }
      }
    }
  }
}&lt;/pre&gt;

&lt;p&gt;
The equivalent Elasticsearch 2.x+ filter would be:
&lt;/p&gt;
&lt;pre class=&quot;code json&quot;&gt;{
  &amp;quot;query&amp;quot; : {
    &amp;quot;bool&amp;quot; : {
      &amp;quot;filter&amp;quot; : {
        &amp;quot;terms&amp;quot; : {
          &amp;quot;id&amp;quot; : [1, 2, 3]
        }
      }
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;How use IN equivalent operator in ElasticSearch?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;how_use_in_equivalent_operator_in_elasticsearch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-7">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-15T19:17:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Где v &gt; 1</title>
        <link>http://178.140.10.58:8080/doku.php?id=system:elasticsearch:exaples:example-7</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:search&amp;amp;do=showtag&amp;amp;tag=search&quot; class=&quot;wikilink1&quot; title=&quot;tag:search&quot; rel=&quot;tag&quot;&gt;search&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:elasticsearch&amp;amp;do=showtag&amp;amp;tag=elasticsearch&quot; class=&quot;wikilink1&quot; title=&quot;tag:elasticsearch&quot; rel=&quot;tag&quot;&gt;elasticsearch&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:indexer&amp;amp;do=showtag&amp;amp;tag=indexer&quot; class=&quot;wikilink1&quot; title=&quot;tag:indexer&quot; rel=&quot;tag&quot;&gt;indexer&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;где_v_1&quot;&gt;Где v &amp;gt; 1&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code json&quot;&gt;{
  &amp;quot;query&amp;quot;: {
    &amp;quot;script&amp;quot;: {
      &amp;quot;script&amp;quot;: {
        &amp;quot;source&amp;quot;: &amp;quot;doc.v.value &amp;gt; 1&amp;quot;,
        &amp;quot;lang&amp;quot;: &amp;quot;painless&amp;quot;
      }
    }
  }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0413\u0434\u0435 v &amp;gt; 1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u0434\u0435_v_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
