Added random test for ChildrenConstantScoreQuery.
This commit is contained in:
parent
8d1e526616
commit
9e25c6a4db
|
@ -63,7 +63,6 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.hamcrest.Matchers.nullValue;
|
import static org.hamcrest.Matchers.nullValue;
|
||||||
|
|
||||||
|
@ -278,11 +277,11 @@ public class SimpleIdCacheTests extends ElasticsearchTestCase {
|
||||||
return new IndexWriter(new RAMDirectory(), new IndexWriterConfig(Lucene.VERSION, new StandardAnalyzer(Lucene.VERSION)));
|
return new IndexWriter(new RAMDirectory(), new IndexWriterConfig(Lucene.VERSION, new StandardAnalyzer(Lucene.VERSION)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private class StubIndexService implements IndexService {
|
public static class StubIndexService implements IndexService {
|
||||||
|
|
||||||
private final MapperService mapperService;
|
private final MapperService mapperService;
|
||||||
|
|
||||||
private StubIndexService(MapperService mapperService) {
|
public StubIndexService(MapperService mapperService) {
|
||||||
this.mapperService = mapperService;
|
this.mapperService = mapperService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,799 @@
|
||||||
|
/*
|
||||||
|
* Licensed to ElasticSearch and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. ElasticSearch licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations under
|
||||||
|
* the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.index.search.child;
|
||||||
|
|
||||||
|
import com.carrotsearch.hppc.ObjectObjectOpenHashMap;
|
||||||
|
import org.apache.lucene.document.Document;
|
||||||
|
import org.apache.lucene.document.Field;
|
||||||
|
import org.apache.lucene.document.StringField;
|
||||||
|
import org.apache.lucene.index.*;
|
||||||
|
import org.apache.lucene.queries.TermFilter;
|
||||||
|
import org.apache.lucene.search.*;
|
||||||
|
import org.apache.lucene.store.Directory;
|
||||||
|
import org.apache.lucene.util.FixedBitSet;
|
||||||
|
import org.elasticsearch.ElasticSearchException;
|
||||||
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
|
import org.elasticsearch.action.search.SearchType;
|
||||||
|
import org.elasticsearch.cache.recycler.CacheRecycler;
|
||||||
|
import org.elasticsearch.common.lease.Releasable;
|
||||||
|
import org.elasticsearch.common.lucene.search.NoopCollector;
|
||||||
|
import org.elasticsearch.common.lucene.search.XConstantScoreQuery;
|
||||||
|
import org.elasticsearch.common.settings.ImmutableSettings;
|
||||||
|
import org.elasticsearch.env.Environment;
|
||||||
|
import org.elasticsearch.index.Index;
|
||||||
|
import org.elasticsearch.index.analysis.AnalysisService;
|
||||||
|
import org.elasticsearch.index.cache.docset.DocSetCache;
|
||||||
|
import org.elasticsearch.index.cache.filter.FilterCache;
|
||||||
|
import org.elasticsearch.index.cache.id.IdCache;
|
||||||
|
import org.elasticsearch.index.cache.id.SimpleIdCacheTests;
|
||||||
|
import org.elasticsearch.index.cache.id.simple.SimpleIdCache;
|
||||||
|
import org.elasticsearch.index.engine.Engine;
|
||||||
|
import org.elasticsearch.index.fielddata.IndexFieldDataService;
|
||||||
|
import org.elasticsearch.index.mapper.FieldMapper;
|
||||||
|
import org.elasticsearch.index.mapper.FieldMappers;
|
||||||
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
|
import org.elasticsearch.index.mapper.Uid;
|
||||||
|
import org.elasticsearch.index.mapper.internal.ParentFieldMapper;
|
||||||
|
import org.elasticsearch.index.mapper.internal.TypeFieldMapper;
|
||||||
|
import org.elasticsearch.index.mapper.internal.UidFieldMapper;
|
||||||
|
import org.elasticsearch.index.query.IndexQueryParserService;
|
||||||
|
import org.elasticsearch.index.query.ParsedFilter;
|
||||||
|
import org.elasticsearch.index.query.ParsedQuery;
|
||||||
|
import org.elasticsearch.index.service.IndexService;
|
||||||
|
import org.elasticsearch.index.shard.service.IndexShard;
|
||||||
|
import org.elasticsearch.index.similarity.SimilarityService;
|
||||||
|
import org.elasticsearch.script.ScriptService;
|
||||||
|
import org.elasticsearch.search.Scroll;
|
||||||
|
import org.elasticsearch.search.SearchShardTarget;
|
||||||
|
import org.elasticsearch.search.dfs.DfsSearchResult;
|
||||||
|
import org.elasticsearch.search.facet.SearchContextFacets;
|
||||||
|
import org.elasticsearch.search.fetch.FetchSearchResult;
|
||||||
|
import org.elasticsearch.search.fetch.partial.PartialFieldsContext;
|
||||||
|
import org.elasticsearch.search.fetch.script.ScriptFieldsContext;
|
||||||
|
import org.elasticsearch.search.fetch.source.FetchSourceContext;
|
||||||
|
import org.elasticsearch.search.highlight.SearchContextHighlight;
|
||||||
|
import org.elasticsearch.search.internal.ContextIndexSearcher;
|
||||||
|
import org.elasticsearch.search.internal.SearchContext;
|
||||||
|
import org.elasticsearch.search.internal.ShardSearchRequest;
|
||||||
|
import org.elasticsearch.search.lookup.SearchLookup;
|
||||||
|
import org.elasticsearch.search.query.QuerySearchResult;
|
||||||
|
import org.elasticsearch.search.rescore.RescoreSearchContext;
|
||||||
|
import org.elasticsearch.search.scan.ScanContext;
|
||||||
|
import org.elasticsearch.search.suggest.SuggestionSearchContext;
|
||||||
|
import org.elasticsearch.test.ElasticsearchLuceneTestCase;
|
||||||
|
import org.hamcrest.Description;
|
||||||
|
import org.hamcrest.StringDescription;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.NavigableSet;
|
||||||
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
|
public class ChildrenConstantScoreQueryTests extends ElasticsearchLuceneTestCase {
|
||||||
|
|
||||||
|
static ContextIndexSearcher contextIndexSearcher;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void before() throws IOException {
|
||||||
|
SearchContext.setCurrent(createSearchContext("test", "parent", "child"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void after() throws IOException {
|
||||||
|
SearchContext.removeCurrent();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSimple() throws Exception {
|
||||||
|
Directory directory = newDirectory();
|
||||||
|
RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory);
|
||||||
|
|
||||||
|
for (int parent = 1; parent <= 5; parent++) {
|
||||||
|
Document document = new Document();
|
||||||
|
document.add(new StringField(UidFieldMapper.NAME, Uid.createUid("parent", Integer.toString(parent)), Field.Store.NO));
|
||||||
|
document.add(new StringField(TypeFieldMapper.NAME, "parent", Field.Store.NO));
|
||||||
|
indexWriter.addDocument(document);
|
||||||
|
|
||||||
|
for (int child = 1; child <= 3; child++) {
|
||||||
|
document = new Document();
|
||||||
|
document.add(new StringField(UidFieldMapper.NAME, Uid.createUid("child", Integer.toString(parent * 3 + child)), Field.Store.NO));
|
||||||
|
document.add(new StringField(TypeFieldMapper.NAME, "child", Field.Store.NO));
|
||||||
|
document.add(new StringField(ParentFieldMapper.NAME, Uid.createUid("parent", Integer.toString(parent)), Field.Store.NO));
|
||||||
|
document.add(new StringField("field1", "value" + child, Field.Store.NO));
|
||||||
|
indexWriter.addDocument(document);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IndexReader indexReader = DirectoryReader.open(indexWriter.w, false);
|
||||||
|
IndexSearcher searcher = new IndexSearcher(indexReader);
|
||||||
|
|
||||||
|
TermQuery childQuery = new TermQuery(new Term("field1", "value" + (1 + random().nextInt(3))));
|
||||||
|
TermFilter parentFilter = new TermFilter(new Term(TypeFieldMapper.NAME, "parent"));
|
||||||
|
int shortCircuitParentDocSet = random().nextInt(5);
|
||||||
|
ChildrenConstantScoreQuery query = new ChildrenConstantScoreQuery(childQuery, "parent", "child", parentFilter, shortCircuitParentDocSet, true);
|
||||||
|
|
||||||
|
BitSetCollector collector = new BitSetCollector(indexReader.maxDoc());
|
||||||
|
searcher.search(query, collector);
|
||||||
|
FixedBitSet actualResult = collector.getResult();
|
||||||
|
|
||||||
|
assertThat(actualResult.cardinality(), equalTo(5));
|
||||||
|
|
||||||
|
indexWriter.close();
|
||||||
|
indexReader.close();
|
||||||
|
directory.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRandom() throws Exception {
|
||||||
|
Directory directory = newDirectory();
|
||||||
|
RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory);
|
||||||
|
|
||||||
|
|
||||||
|
int numUniqueChildValues = 1 + random().nextInt(TEST_NIGHTLY ? 50000 : 1000);
|
||||||
|
String[] childValues = new String[numUniqueChildValues];
|
||||||
|
for (int i = 0; i < numUniqueChildValues; i++) {
|
||||||
|
childValues[i] = Integer.toString(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
ObjectObjectOpenHashMap<String, NavigableSet<String>> childValueToParentIds = new ObjectObjectOpenHashMap<String, NavigableSet<String>>();
|
||||||
|
|
||||||
|
int childDocId = 0;
|
||||||
|
int numParentDocs = 1 + random().nextInt(TEST_NIGHTLY ? 50000 : 1000);
|
||||||
|
for (int parentDocId = 0; parentDocId < numParentDocs; parentDocId++) {
|
||||||
|
boolean markParentAsDeleted = rarely();
|
||||||
|
String parent = Integer.toString(parentDocId);
|
||||||
|
Document document = new Document();
|
||||||
|
document.add(new StringField(UidFieldMapper.NAME, Uid.createUid("parent", parent), Field.Store.YES));
|
||||||
|
document.add(new StringField(TypeFieldMapper.NAME, "parent", Field.Store.NO));
|
||||||
|
if (markParentAsDeleted) {
|
||||||
|
document.add(new StringField("delete", "me", Field.Store.NO));
|
||||||
|
}
|
||||||
|
indexWriter.addDocument(document);
|
||||||
|
|
||||||
|
int numChildDocs = random().nextInt(TEST_NIGHTLY ? 100 : 25);
|
||||||
|
for (int i = 0; i < numChildDocs; i++) {
|
||||||
|
boolean markChildAsDeleted = rarely();
|
||||||
|
String childValue = childValues[random().nextInt(childValues.length)];
|
||||||
|
|
||||||
|
document = new Document();
|
||||||
|
document.add(new StringField(UidFieldMapper.NAME, Uid.createUid("child", Integer.toString(childDocId)), Field.Store.NO));
|
||||||
|
document.add(new StringField(TypeFieldMapper.NAME, "child", Field.Store.NO));
|
||||||
|
document.add(new StringField(ParentFieldMapper.NAME, Uid.createUid("parent", parent), Field.Store.NO));
|
||||||
|
document.add(new StringField("field1", childValue, Field.Store.NO));
|
||||||
|
if (markChildAsDeleted) {
|
||||||
|
document.add(new StringField("delete", "me", Field.Store.NO));
|
||||||
|
}
|
||||||
|
indexWriter.addDocument(document);
|
||||||
|
|
||||||
|
if (!markChildAsDeleted) {
|
||||||
|
NavigableSet<String> parentIds;
|
||||||
|
if (childValueToParentIds.containsKey(childValue)) {
|
||||||
|
parentIds = childValueToParentIds.lget();
|
||||||
|
} else {
|
||||||
|
childValueToParentIds.put(childValue, parentIds = new TreeSet<String>());
|
||||||
|
}
|
||||||
|
if (!markParentAsDeleted) {
|
||||||
|
parentIds.add(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete docs that are marked to be deleted.
|
||||||
|
indexWriter.deleteDocuments(new Term("delete", "me"));
|
||||||
|
|
||||||
|
indexWriter.close();
|
||||||
|
IndexReader indexReader = DirectoryReader.open(directory);
|
||||||
|
IndexSearcher searcher = new IndexSearcher(indexReader);
|
||||||
|
Engine.Searcher engineSearcher = new Engine.SimpleSearcher(
|
||||||
|
ChildrenConstantScoreQueryTests.class.getSimpleName(), searcher
|
||||||
|
);
|
||||||
|
contextIndexSearcher = new ContextIndexSearcher(SearchContext.current(), engineSearcher);
|
||||||
|
|
||||||
|
TermFilter parentFilter = new TermFilter(new Term(TypeFieldMapper.NAME, "parent"));
|
||||||
|
for (String childValue : childValues) {
|
||||||
|
TermQuery childQuery = new TermQuery(new Term("field1", childValue));
|
||||||
|
int shortCircuitParentDocSet = random().nextInt(numParentDocs);
|
||||||
|
Query query;
|
||||||
|
boolean applyAcceptedDocs = random().nextBoolean();
|
||||||
|
if (applyAcceptedDocs) {
|
||||||
|
// Usage in HasChildQueryParser
|
||||||
|
query = new ChildrenConstantScoreQuery(childQuery, "parent", "child", parentFilter, shortCircuitParentDocSet, applyAcceptedDocs);
|
||||||
|
} else {
|
||||||
|
// Usage in HasChildFilterParser
|
||||||
|
query = new XConstantScoreQuery(
|
||||||
|
new CustomQueryWrappingFilter(
|
||||||
|
new ChildrenConstantScoreQuery(childQuery, "parent", "child", parentFilter, shortCircuitParentDocSet, applyAcceptedDocs)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
BitSetCollector collector = new BitSetCollector(indexReader.maxDoc());
|
||||||
|
searcher.search(query, collector);
|
||||||
|
FixedBitSet actualResult = collector.getResult();
|
||||||
|
|
||||||
|
FixedBitSet expectedResult = new FixedBitSet(indexReader.maxDoc());
|
||||||
|
if (childValueToParentIds.containsKey(childValue)) {
|
||||||
|
AtomicReader slowAtomicReader = SlowCompositeReaderWrapper.wrap(indexReader);
|
||||||
|
Terms terms = slowAtomicReader.terms(UidFieldMapper.NAME);
|
||||||
|
if (terms != null) {
|
||||||
|
NavigableSet<String> parentIds = childValueToParentIds.lget();
|
||||||
|
TermsEnum termsEnum = terms.iterator(null);
|
||||||
|
DocsEnum docsEnum = null;
|
||||||
|
for (String id : parentIds) {
|
||||||
|
TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(Uid.createUidAsBytes("parent", id));
|
||||||
|
if (seekStatus == TermsEnum.SeekStatus.FOUND) {
|
||||||
|
docsEnum = termsEnum.docs(slowAtomicReader.getLiveDocs(), docsEnum, DocsEnum.FLAG_NONE);
|
||||||
|
expectedResult.set(docsEnum.nextDoc());
|
||||||
|
} else if (seekStatus == TermsEnum.SeekStatus.END) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(actualResult, expectedResult, searcher);
|
||||||
|
}
|
||||||
|
|
||||||
|
indexReader.close();
|
||||||
|
directory.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertEquals(FixedBitSet actual, FixedBitSet expected, IndexSearcher searcher) throws IOException {
|
||||||
|
if (!actual.equals(expected)) {
|
||||||
|
Description description= new StringDescription();
|
||||||
|
description.appendText(reason(actual, expected, searcher));
|
||||||
|
description.appendText("\nExpected: ");
|
||||||
|
description.appendValue(expected);
|
||||||
|
description.appendText("\n got: ");
|
||||||
|
description.appendValue(actual);
|
||||||
|
description.appendText("\n");
|
||||||
|
throw new java.lang.AssertionError(description.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String reason(FixedBitSet actual, FixedBitSet expected, IndexSearcher indexSearcher) throws IOException {
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
builder.append("expected cardinality:").append(expected.cardinality()).append('\n');
|
||||||
|
DocIdSetIterator iterator = expected.iterator();
|
||||||
|
for (int doc = iterator.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = iterator.nextDoc()) {
|
||||||
|
builder.append("Expected doc[").append(doc).append("] with id value ").append(indexSearcher.doc(doc).get(UidFieldMapper.NAME)).append('\n');
|
||||||
|
}
|
||||||
|
builder.append("actual cardinality: ").append(actual.cardinality()).append('\n');
|
||||||
|
iterator = actual.iterator();
|
||||||
|
for (int doc = iterator.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = iterator.nextDoc()) {
|
||||||
|
builder.append("Actual doc[").append(doc).append("] with id value ").append(indexSearcher.doc(doc).get(UidFieldMapper.NAME)).append('\n');
|
||||||
|
}
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
static SearchContext createSearchContext(String indexName, String parentType, String childType) throws IOException {
|
||||||
|
final Index index = new Index(indexName);
|
||||||
|
final IdCache idCache = new SimpleIdCache(index, ImmutableSettings.EMPTY);
|
||||||
|
final CacheRecycler cacheRecycler = new CacheRecycler(ImmutableSettings.EMPTY);
|
||||||
|
MapperService mapperService = new MapperService(
|
||||||
|
index, ImmutableSettings.EMPTY, new Environment(), new AnalysisService(index), null, null, null
|
||||||
|
);
|
||||||
|
mapperService.merge(
|
||||||
|
childType, PutMappingRequest.buildFromSimplifiedDef(childType, "_parent", "type=" + parentType).string(), true
|
||||||
|
);
|
||||||
|
final IndexService indexService = new SimpleIdCacheTests.StubIndexService(mapperService);
|
||||||
|
idCache.setIndexService(indexService);
|
||||||
|
return new TestSearchContext(cacheRecycler, idCache, indexService);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class BitSetCollector extends NoopCollector {
|
||||||
|
|
||||||
|
final FixedBitSet result;
|
||||||
|
int docBase;
|
||||||
|
|
||||||
|
private BitSetCollector(int topLevelMaxDoc) {
|
||||||
|
this.result = new FixedBitSet(topLevelMaxDoc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void collect(int doc) throws IOException {
|
||||||
|
result.set(docBase + doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNextReader(AtomicReaderContext context) throws IOException {
|
||||||
|
docBase = context.docBase;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FixedBitSet getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TestSearchContext extends SearchContext {
|
||||||
|
|
||||||
|
final CacheRecycler cacheRecycler;
|
||||||
|
final IdCache idCache;
|
||||||
|
final IndexService indexService;
|
||||||
|
|
||||||
|
private TestSearchContext(CacheRecycler cacheRecycler, IdCache idCache, IndexService indexService) {
|
||||||
|
this.cacheRecycler = cacheRecycler;
|
||||||
|
this.idCache = idCache;
|
||||||
|
this.indexService = indexService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean clearAndRelease() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void preProcess() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Filter searchFilter(String[] types) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long id() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String source() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ShardSearchRequest request() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchType searchType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext searchType(SearchType searchType) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchShardTarget shardTarget() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int numberOfShards() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTypes() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] types() {
|
||||||
|
return new String[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float queryBoost() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext queryBoost(float queryBoost) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long nowInMillis() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Scroll scroll() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext scroll(Scroll scroll) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContextFacets facets() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext facets(SearchContextFacets facets) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContextHighlight highlight() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void highlight(SearchContextHighlight highlight) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SuggestionSearchContext suggest() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void suggest(SuggestionSearchContext suggest) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RescoreSearchContext rescore() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rescore(RescoreSearchContext rescore) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasScriptFields() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScriptFieldsContext scriptFields() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPartialFields() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PartialFieldsContext partialFields() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean sourceRequested() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasFetchSourceContext() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FetchSourceContext fetchSourceContext() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext fetchSourceContext(FetchSourceContext fetchSourceContext) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ContextIndexSearcher searcher() {
|
||||||
|
return contextIndexSearcher;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IndexShard indexShard() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MapperService mapperService() {
|
||||||
|
return indexService.mapperService();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnalysisService analysisService() {
|
||||||
|
return indexService.analysisService();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IndexQueryParserService queryParserService() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SimilarityService similarityService() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScriptService scriptService() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CacheRecycler cacheRecycler() {
|
||||||
|
return cacheRecycler;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FilterCache filterCache() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DocSetCache docSetCache() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IndexFieldDataService fieldData() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IdCache idCache() {
|
||||||
|
return idCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long timeoutInMillis() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void timeoutInMillis(long timeoutInMillis) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext minimumScore(float minimumScore) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Float minimumScore() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext sort(Sort sort) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Sort sort() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext trackScores(boolean trackScores) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean trackScores() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext parsedFilter(ParsedFilter filter) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ParsedFilter parsedFilter() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Filter aliasFilter() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext parsedQuery(ParsedQuery query) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ParsedQuery parsedQuery() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Query query() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean queryRewritten() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext updateRewriteQuery(Query rewriteQuery) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int from() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext from(int from) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int size() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext size(int size) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasFieldNames() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> fieldNames() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void emptyFieldNames() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean explain() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void explain(boolean explain) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> groupStats() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void groupStats(List<String> groupStats) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean version() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void version(boolean version) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] docIdsToLoad() {
|
||||||
|
return new int[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int docIdsToLoadFrom() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int docIdsToLoadSize() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchContext docIdsToLoad(int[] docIdsToLoad, int docsIdsToLoadFrom, int docsIdsToLoadSize) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accessed(long accessTime) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long lastAccessTime() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long keepAlive() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keepAlive(long keepAlive) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SearchLookup lookup() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DfsSearchResult dfsResult() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuerySearchResult queryResult() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FetchSearchResult fetchResult() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addReleasable(Releasable releasable) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearReleasables() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScanContext scanContext() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MapperService.SmartNameFieldMappers smartFieldMappers(String name) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FieldMappers smartNameFieldMappers(String name) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FieldMapper smartNameFieldMapper(String name) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MapperService.SmartNameObjectMapper smartNameObjectMapper(String name) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean release() throws ElasticSearchException {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue