<p dir="auto">ES version: 1.4.4.<br>
One of our clients is running ES in a virtual server (OVH VPS).<br>
From what I understand, ElasticSearch stopped working after one hour with the following error.<br>
This error was repeated a couple of times at the end of the log file, then the whole VM crashed.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[2015-04-13 06:02:13,567][WARN ][netty.channel.socket.nio.AbstractNioSelector] Unexpected exception in the selector loop.
java.lang.LinkageError: loader constraint violation: when resolving method &quot;java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;&quot; the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:13,568][WARN ][netty.channel.socket.nio.AbstractNioSelector] Unexpected exception in the selector loop.
java.lang.LinkageError: loader constraint violation: when resolving method &quot;java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;&quot; the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:13,609][WARN ][netty.util.HashedWheelTimer] An exception was thrown by TimerTask.
java.lang.LinkageError: loader constraint violation: when resolving method &quot;java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;&quot; the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/NioClientBoss$1, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss$1.run(NioClientBoss.java:54)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:556)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:632)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:369)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:23,566][WARN ][transport.netty          ] [Linkurious Index] exception caught on transport layer [[id: 0x5f0a5b48]], closing connection
java.lang.LinkageError: loader constraint violation: when resolving method &quot;java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;&quot; the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.registerTask(AbstractNioSelector.java:115)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.register(AbstractNioSelector.java:105)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.register(NioClientBoss.java:42)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink.connect(NioClientSocketPipelineSink.java:121)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:70)
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:574)
    at org.elasticsearch.common.netty.channel.Channels.connect(Channels.java:634)
    at org.elasticsearch.common.netty.channel.AbstractChannel.connect(AbstractChannel.java:207)
    at org.elasticsearch.common.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:229)
    at org.elasticsearch.common.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182)
    at org.elasticsearch.transport.netty.NettyTransport.connectToChannels(NettyTransport.java:788)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:741)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:714)
    at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:150)
    at org.elasticsearch.cluster.service.InternalClusterService$ReconnectToNodes.run(InternalClusterService.java:544)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)"><pre class="notranslate"><code class="notranslate">[2015-04-13 06:02:13,567][WARN ][netty.channel.socket.nio.AbstractNioSelector] Unexpected exception in the selector loop.
java.lang.LinkageError: loader constraint violation: when resolving method "java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;" the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:13,568][WARN ][netty.channel.socket.nio.AbstractNioSelector] Unexpected exception in the selector loop.
java.lang.LinkageError: loader constraint violation: when resolving method "java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;" the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:290)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:13,609][WARN ][netty.util.HashedWheelTimer] An exception was thrown by TimerTask.
java.lang.LinkageError: loader constraint violation: when resolving method "java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;" the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/NioClientBoss$1, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss$1.run(NioClientBoss.java:54)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:556)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:632)
    at org.elasticsearch.common.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:369)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at java.lang.Thread.run(Thread.java:745)
[2015-04-13 06:02:23,566][WARN ][transport.netty          ] [Linkurious Index] exception caught on transport layer [[id: 0x5f0a5b48]], closing connection
java.lang.LinkageError: loader constraint violation: when resolving method "java.nio.channels.Selector.wakeup()Ljava/nio/channels/Selector;" the class loader (instance of sun/misc/Launcher$AppClassLoader) of the current class, org/elasticsearch/common/netty/channel/socket/nio/AbstractNioSelector, and the class loader (instance of &lt;bootloader&gt;) for the method's defining class, java/nio/channels/Selector, have different Class objects for the type java/nio/channels/Selector used in the signature
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.registerTask(AbstractNioSelector.java:115)
    at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.register(AbstractNioSelector.java:105)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientBoss.register(NioClientBoss.java:42)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink.connect(NioClientSocketPipelineSink.java:121)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:70)
    at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:574)
    at org.elasticsearch.common.netty.channel.Channels.connect(Channels.java:634)
    at org.elasticsearch.common.netty.channel.AbstractChannel.connect(AbstractChannel.java:207)
    at org.elasticsearch.common.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:229)
    at org.elasticsearch.common.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182)
    at org.elasticsearch.transport.netty.NettyTransport.connectToChannels(NettyTransport.java:788)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:741)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:714)
    at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:150)
    at org.elasticsearch.cluster.service.InternalClusterService$ReconnectToNodes.run(InternalClusterService.java:544)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
</code></pre></div>
<p dir="auto">When I create multiple documents which have the same output value in the completion field, a suggest completion request only retrieves one object.<br>
I guess it is a feature, however, once we may set different payloads to those documents, it would make sense to retrieve multiple suggestions with the same output.</p>
<p dir="auto">My environment settings:<br>
ElasticSearch version number: <code class="notranslate">1.0.0.Beta1</code><br>
Lucene version: <code class="notranslate">4.5.1</code></p>
<p dir="auto">In the following example, I create an index with two documents. Each document has a different value in the payload, but the same output and input.<br>
Performing a suggestion completion request, only one document is retrieved.</p>
<p dir="auto">Scripts:</p>
<h2 dir="auto">Create and populate index</h2>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="curl -XDELETE 'localhost:9200/notebookindex'

curl -XPUT localhost:9200/notebookindex

curl -XPUT localhost:9200/notebookindex/friend/_mapping -d '{
  &quot;friend&quot; : {
        &quot;properties&quot; : {
            &quot;name&quot; : { &quot;type&quot; : &quot;string&quot; },
            &quot;suggestField&quot; : { &quot;type&quot; : &quot;completion&quot;, &quot;payloads&quot; : true }
        }
    }
}'

curl -XPUT 'localhost:9200/notebookindex/friend/1' -d ' {
  &quot;name&quot;: &quot;james smith&quot;,
  &quot;suggestField&quot;: {
    &quot;input&quot;: [&quot;james&quot;, &quot;smith&quot;, &quot;james smith&quot;],
    &quot;output&quot;: &quot;james smith&quot;,
    &quot;payload&quot;: {&quot;id&quot;: &quot;1&quot;, &quot;phone&quot;: &quot;555-55555&quot;}
  }
}'

curl -XPUT 'localhost:9200/notebookindex/friend/2' -d '{
  &quot;name&quot;: &quot;james smith&quot;,
  &quot;suggestField&quot;: {
    &quot;input&quot;: [&quot;james&quot;, &quot;smith&quot;, &quot;james smith&quot;],
    &quot;output&quot;: &quot;james smith&quot;,
    &quot;payload&quot;: {&quot;id&quot;: &quot;2&quot;, &quot;phone&quot;: &quot;444-44444&quot;}
  }
}'"><pre class="notranslate">curl -XDELETE <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex<span class="pl-pds">'</span></span>

curl -XPUT localhost:9200/notebookindex

curl -XPUT localhost:9200/notebookindex/friend/_mapping -d <span class="pl-s"><span class="pl-pds">'</span>{</span>
<span class="pl-s">  "friend" : {</span>
<span class="pl-s">        "properties" : {</span>
<span class="pl-s">            "name" : { "type" : "string" },</span>
<span class="pl-s">            "suggestField" : { "type" : "completion", "payloads" : true }</span>
<span class="pl-s">        }</span>
<span class="pl-s">    }</span>
<span class="pl-s">}<span class="pl-pds">'</span></span>

curl -XPUT <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex/friend/1<span class="pl-pds">'</span></span> -d <span class="pl-s"><span class="pl-pds">'</span> {</span>
<span class="pl-s">  "name": "james smith",</span>
<span class="pl-s">  "suggestField": {</span>
<span class="pl-s">    "input": ["james", "smith", "james smith"],</span>
<span class="pl-s">    "output": "james smith",</span>
<span class="pl-s">    "payload": {"id": "1", "phone": "555-55555"}</span>
<span class="pl-s">  }</span>
<span class="pl-s">}<span class="pl-pds">'</span></span>

curl -XPUT <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex/friend/2<span class="pl-pds">'</span></span> -d <span class="pl-s"><span class="pl-pds">'</span>{</span>
<span class="pl-s">  "name": "james smith",</span>
<span class="pl-s">  "suggestField": {</span>
<span class="pl-s">    "input": ["james", "smith", "james smith"],</span>
<span class="pl-s">    "output": "james smith",</span>
<span class="pl-s">    "payload": {"id": "2", "phone": "444-44444"}</span>
<span class="pl-s">  }</span>
<span class="pl-s">}<span class="pl-pds">'</span></span></pre></div>
<h2 dir="auto">Search 1: look for friends starting with <code class="notranslate">j</code></h2>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="curl -XPOST 'localhost:9200/notebookindex/_suggest?pretty' -d '{
  &quot;my-friends-suggest&quot;: {
    &quot;text&quot;: &quot;j&quot;,
    &quot;completion&quot;: {
      &quot;field&quot;: &quot;suggestField&quot;
    }
  }
}'"><pre class="notranslate">curl -XPOST <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex/_suggest?pretty<span class="pl-pds">'</span></span> -d <span class="pl-s"><span class="pl-pds">'</span>{</span>
<span class="pl-s">  "my-friends-suggest": {</span>
<span class="pl-s">    "text": "j",</span>
<span class="pl-s">    "completion": {</span>
<span class="pl-s">      "field": "suggestField"</span>
<span class="pl-s">    }</span>
<span class="pl-s">  }</span>
<span class="pl-s">}<span class="pl-pds">'</span></span></pre></div>
<p dir="auto">Only one <code class="notranslate">James</code> is found, even though there are two documents matching the suggestion.</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;_shards&quot; : {
    &quot;total&quot; : 5,
    &quot;successful&quot; : 5,
    &quot;failed&quot; : 0
  },
  &quot;my-friends-suggest&quot; : [ {
    &quot;text&quot; : &quot;j&quot;,
    &quot;offset&quot; : 0,
    &quot;length&quot; : 1,
    &quot;options&quot; : [ {
      &quot;text&quot; : &quot;james smith&quot;,
      &quot;score&quot; : 1.0, &quot;payload&quot; : {&quot;id&quot;:&quot;2&quot;,&quot;phone&quot;:&quot;444-44444&quot;}
    } ]
  } ]
}"><pre class="notranslate">{
  <span class="pl-ent">"_shards"</span> : {
    <span class="pl-ent">"total"</span> : <span class="pl-c1">5</span>,
    <span class="pl-ent">"successful"</span> : <span class="pl-c1">5</span>,
    <span class="pl-ent">"failed"</span> : <span class="pl-c1">0</span>
  },
  <span class="pl-ent">"my-friends-suggest"</span> : [ {
    <span class="pl-ent">"text"</span> : <span class="pl-s"><span class="pl-pds">"</span>j<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"offset"</span> : <span class="pl-c1">0</span>,
    <span class="pl-ent">"length"</span> : <span class="pl-c1">1</span>,
    <span class="pl-ent">"options"</span> : [ {
      <span class="pl-ent">"text"</span> : <span class="pl-s"><span class="pl-pds">"</span>james smith<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"score"</span> : <span class="pl-c1">1.0</span>, <span class="pl-ent">"payload"</span> : {<span class="pl-ent">"id"</span>:<span class="pl-s"><span class="pl-pds">"</span>2<span class="pl-pds">"</span></span>,<span class="pl-ent">"phone"</span>:<span class="pl-s"><span class="pl-pds">"</span>444-44444<span class="pl-pds">"</span></span>}
    } ]
  } ]
}</pre></div>
<h2 dir="auto">Removal and Search 2: remove the <code class="notranslate">James</code> (<code class="notranslate">id 2</code>) previously found and look for friends starting with <code class="notranslate">j</code></h2>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="curl -XDELETE 'localhost:9200/notebookindex/friend/2'

curl -XPOST 'localhost:9200/notebookindex/_suggest?pretty' -d '{
  &quot;my-friends-suggest&quot;: {
    &quot;text&quot;: &quot;j&quot;,
    &quot;completion&quot;: {
      &quot;field&quot;: &quot;suggestField&quot;
    }
  }
}'"><pre class="notranslate">curl -XDELETE <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex/friend/2<span class="pl-pds">'</span></span>

curl -XPOST <span class="pl-s"><span class="pl-pds">'</span>localhost:9200/notebookindex/_suggest?pretty<span class="pl-pds">'</span></span> -d <span class="pl-s"><span class="pl-pds">'</span>{</span>
<span class="pl-s">  "my-friends-suggest": {</span>
<span class="pl-s">    "text": "j",</span>
<span class="pl-s">    "completion": {</span>
<span class="pl-s">      "field": "suggestField"</span>
<span class="pl-s">    }</span>
<span class="pl-s">  }</span>
<span class="pl-s">}<span class="pl-pds">'</span></span></pre></div>
<p dir="auto">The other <code class="notranslate">James</code> is found.</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;_shards&quot; : {
    &quot;total&quot; : 5,
    &quot;successful&quot; : 5,
    &quot;failed&quot; : 0
  },
  &quot;my-friends-suggest&quot; : [ {
    &quot;text&quot; : &quot;j&quot;,
    &quot;offset&quot; : 0,
    &quot;length&quot; : 1,
    &quot;options&quot; : [ {
      &quot;text&quot; : &quot;james smith&quot;,
      &quot;score&quot; : 1.0, &quot;payload&quot; : {&quot;id&quot;:&quot;1&quot;,&quot;phone&quot;:&quot;555-55555&quot;}
    } ]
  } ]
}"><pre class="notranslate">{
  <span class="pl-ent">"_shards"</span> : {
    <span class="pl-ent">"total"</span> : <span class="pl-c1">5</span>,
    <span class="pl-ent">"successful"</span> : <span class="pl-c1">5</span>,
    <span class="pl-ent">"failed"</span> : <span class="pl-c1">0</span>
  },
  <span class="pl-ent">"my-friends-suggest"</span> : [ {
    <span class="pl-ent">"text"</span> : <span class="pl-s"><span class="pl-pds">"</span>j<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"offset"</span> : <span class="pl-c1">0</span>,
    <span class="pl-ent">"length"</span> : <span class="pl-c1">1</span>,
    <span class="pl-ent">"options"</span> : [ {
      <span class="pl-ent">"text"</span> : <span class="pl-s"><span class="pl-pds">"</span>james smith<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"score"</span> : <span class="pl-c1">1.0</span>, <span class="pl-ent">"payload"</span> : {<span class="pl-ent">"id"</span>:<span class="pl-s"><span class="pl-pds">"</span>1<span class="pl-pds">"</span></span>,<span class="pl-ent">"phone"</span>:<span class="pl-s"><span class="pl-pds">"</span>555-55555<span class="pl-pds">"</span></span>}
    } ]
  } ]
}</pre></div>