Environment
- Fess: 15.8.0
- OpenSearch: 3.8.0
- Docker images:
- `ghcr.io/codelibs/fess:15.8.0`
- `ghcr.io/codelibs/fess-opensearch:3.8.0`
Problem
Fess occasionally displays the warning:
> The search processing time exceeded the limit. The displayed results may be incomplete.
However, the actual search is fast and OpenSearch reports:
"timed_out": false
For example, a search completed in about 150 ms.
The Fess log records the request as:
[SEARCH TIMEOUT]
but the OpenSearch response contains failed shards with:
unsupported_operation_exception
Query DateRangeIncludingNowQuery(...) does not implement createWeight
Relevant Fess facet configuration
The default date facets are enabled:
query.facet.queries=\
labels.facet_timestamp_title:\
labels.facet_timestamp_1day=timestamp:[now/d-1d TO *]\t\
labels.facet_timestamp_1week=timestamp:[now/d-7d TO *]\t\
labels.facet_timestamp_1month=timestamp:[now/d-1M TO *]\t\
labels.facet_timestamp_1year=timestamp:[now/d-1y TO *]\n\
Reproduction directly against OpenSearch
The problem can also be reproduced directly against the Fess OpenSearch index, without using the Fess UI.
Example request:
POST fess.search/_search
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"day": {
"filter": {
"range": {
"timestamp": {
"gte": "now-1d/d"
}
}
}
},
"week": {
"filter": {
"range": {
"timestamp": {
"gte": "now-7d/d"
}
}
}
},
"month": {
"filter": {
"range": {
"timestamp": {
"gte": "now-1M/d"
}
}
}
},
"year": {
"filter": {
"range": {
"timestamp": {
"gte": "now-1y/d"
}
}
}
}
}
}
The failure is intermittent.
An example failed response is:
"_shards": {
"total": 5,
"successful": 4,
"failed": 1
}
with:
unsupported_operation_exception:
Query DateRangeIncludingNowQuery(IndexOrDocValuesQuery(...))
does not implement createWeight
Other identical requests return:
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
}
Tests performed
Changing the date math syntax from:
now/d-1d
to:
now-1d/d
does not solve the issue.
In one test series with now-based ranges, 4 out of 20 identical requests had one failed shard.
As a control test, the same aggregation was executed repeatedly with fixed absolute timestamps instead of now.
Approximately 100 repeated requests using fixed dates completed successfully with:
successful=5
failed=0
This strongly suggests that the problem is related to DateRangeIncludingNowQuery.
Expected behavior
Relative date facets using now should not cause intermittent shard failures.
Additionally, Fess should probably not report this condition as:
[SEARCH TIMEOUT]
when OpenSearch reports:
"timed_out": false
The search itself is fast. The problem appears to be a partial shard failure in the date facet aggregation.
Questions
-
Is this a known issue with OpenSearch 3.8.0?
-
Is there a recommended workaround for Fess 15.8.0?
-
Should Fess distinguish partial shard failures from actual query timeouts in the user-facing warning?
-
If this is confirmed as a bug, should I create a GitHub issue for Fess, or is this better reported directly to OpenSearch?