Gregg
Gregg

Reputation: 667

TotalTermFreq must be at least docFreq error

I have added new field to my elasticsearch (ElasticSearch version 7) mapping as shown below.

"productTags": {"type": "text", "store": true, "fields": {"keyword": {"type": "keyword"}}}

When I perform a query that has matches in productTags field, I am getting this error:

Caused by: java.lang.IllegalArgumentException: totalTermFreq must be at least docFreq, totalTermFreq: 44, docFreq: 68

Interestingly, if I query my index for search terms that are not included in the productTags field, the query is fine. However, once I query for a search term that includes results from productTags, I get this stack trace.

Can you provide hints on what I need to research to resolve this issue? My searches regarding "totalTermFreq must be at least docFreq" does not return many results.

Stack Trace:

[2019-09-01T11:18:05,438][DEBUG][o.e.a.s.TransportSearchAction] [MacBook-Pro.local] All shards failed for phase: [query]
org.elasticsearch.ElasticsearchException$1: totalTermFreq must be at least docFreq, totalTermFreq: 44, docFreq: 68
    at org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:639) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.AbstractSearchAsyncAction.executeNextPhase(AbstractSearchAsyncAction.java:137) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.AbstractSearchAsyncAction.onPhaseDone(AbstractSearchAsyncAction.java:259) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.InitialSearchPhase.onShardFailure(InitialSearchPhase.java:105) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.InitialSearchPhase.access$200(InitialSearchPhase.java:50) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.InitialSearchPhase$2.onFailure(InitialSearchPhase.java:273) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.SearchExecutionStatsCollector.onFailure(SearchExecutionStatsCollector.java:73) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:59) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.search.SearchTransportService$ConnectionCountingHandler.handleException(SearchTransportService.java:441) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1124) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1236) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1210) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.transport.TaskTransportChannel.sendResponse(TaskTransportChannel.java:60) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.action.support.ChannelActionListener.onFailure(ChannelActionListener.java:56) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService$2.onFailure(SearchService.java:366) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService$2.onResponse(SearchService.java:360) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService$2.onResponse(SearchService.java:354) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService$4.doRun(SearchService.java:1069) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:41) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751) [elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.0.1.jar:7.0.1]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_191]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_191]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
Caused by: java.lang.IllegalArgumentException: totalTermFreq must be at least docFreq, totalTermFreq: 44, docFreq: 68
    at org.apache.lucene.search.TermStatistics.<init>(TermStatistics.java:73) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.IndexSearcher.termStatistics(IndexSearcher.java:768) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.internal.ContextIndexSearcher.termStatistics(ContextIndexSearcher.java:193) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.apache.lucene.search.TermQuery$TermWeight.<init>(TermQuery.java:64) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.TermQuery.createWeight(TermQuery.java:205) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:717) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.internal.ContextIndexSearcher.createWeight(ContextIndexSearcher.java:134) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.apache.lucene.search.DisjunctionMaxQuery$DisjunctionMaxWeight.<init>(DisjunctionMaxQuery.java:109) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.DisjunctionMaxQuery.createWeight(DisjunctionMaxQuery.java:205) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:717) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.internal.ContextIndexSearcher.createWeight(ContextIndexSearcher.java:134) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:207) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:717) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.internal.ContextIndexSearcher.createWeight(ContextIndexSearcher.java:134) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:207) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:717) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.internal.ContextIndexSearcher.createWeight(ContextIndexSearcher.java:134) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:443) ~[lucene-core-8.0.0.jar:8.0.0 2ae4746365c1ee72a0047ced7610b2096e438979 - jimczi - 2019-03-08 11:58:55]
    at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:275) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:115) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:349) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:393) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService.access$100(SearchService.java:124) ~[elasticsearch-7.0.1.jar:7.0.1]
    at org.elasticsearch.search.SearchService$2.onResponse(SearchService.java:358) ~[elasticsearch-7.0.1.jar:7.0.1]
    ... 9 more

Upvotes: 0

Views: 120

Answers (1)

Gregg
Gregg

Reputation: 667

It appears this was a bug in ElasticSearch version 7.1. It was resolved in 7.2. Now that I upgraded ElasticSearch to 7.3, my issue is resolved.

Upvotes: 0

Related Questions