<p dir="auto">When a field is not analyzed on index time, it is not possible to specify a search_analyzer.<br>
I get a "analyzer on field [xxx] must be set when search_analyzer is set" exception.</p>
<p dir="auto">To me this does not make sense. I can set a keyword analyzer on the field to circumvent this exception, which does exactly the same thing. However, while doing that, I cannot enable doc_values.</p>
<p dir="auto">I find myself duplicating fields many times because of this limitations.<br>
Those limitations are:</p>
<ul dir="auto">
<li>docvalues don't work on analyzed fields</li>
<li>search_analyzer cannot be specified on non-analyzed fields.</li>
</ul>
<p dir="auto">I presume ES is trying to protect me, but I <em>know</em> what I'm doing.<br>
Is it possible to make this behavior more lenient?</p>
<p dir="auto">When I try to run gradle integration tests to test a plugin by unpacking the zip, the jar hell detection is unable to recognize the same jar on the class path at two (or more) different locations.</p>
<p dir="auto">I assume this is not intended. It would make gradle classpath setups (maybe other build tools too) to compile and test ES plugins "in-place" very difficult to specify.</p>
<p dir="auto">My suggestion is to skip jar URLs that point to a jar with a checksum of a jar that has been already checked.</p>
<p dir="auto">Example:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Caused by: java.lang.IllegalStateException: jar hell!
class: org.xbib.elasticsearch.http.HttpModule$_configure_closure1
jar1: /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar
jar2: /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar
    at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:210)
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:128)
    at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:346)
    ... 52 more"><pre class="notranslate"><code class="notranslate">Caused by: java.lang.IllegalStateException: jar hell!
class: org.xbib.elasticsearch.http.HttpModule$_configure_closure1
jar1: /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar
jar2: /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar
    at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:210)
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:128)
    at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:346)
    ... 52 more
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="shasum /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar
c735bc9b3e05b37a2d553ddda7d76fefc5e817e5  /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar"><pre class="notranslate"><code class="notranslate">shasum /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar
c735bc9b3e05b37a2d553ddda7d76fefc5e817e5  /Users/joerg/.gradle/caches/modules-2/files-2.1/org.xbib.elasticsearch.plugin/elasticsearch-webapp/2.0.0-beta1.0/c735bc9b3e05b37a2d553ddda7d76fefc5e817e5/elasticsearch-webapp-2.0.0-beta1.0.jar
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="shasum /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar
c735bc9b3e05b37a2d553ddda7d76fefc5e817e5  /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar"><pre class="notranslate"><code class="notranslate">shasum /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar
c735bc9b3e05b37a2d553ddda7d76fefc5e817e5  /Users/joerg/Projects/github/jprante/elasticsearch-webapp-example/plugins/webapp/elasticsearch-webapp-2.0.0-beta1.0.jar
</code></pre></div>