test_class.declarator: nodeState
test_class.modifier: private
test_class.original_string: private NodeState nodeState;
test_class.type: NodeState
test_class.var_name: nodeState
test_class.file: oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexTest.java
test_class.identifier: SolrQueryIndexTest
test_case.body: @Test
      public void testNoPlanWithOnlyPrimaryTypeRestrictionsEnabled() throws Exception {
          NodeBuilder builder = nodeState.builder();
          builder.child("oak:index").child("solr").setProperty("primaryTypes", true);
          nodeState = builder.getNodeState();
  
          SelectorImpl selector = newSelector(nodeState, "a");
  
          SolrQueryIndex solrQueryIndex = new SolrQueryIndex(null, null, null);
  
          FilterImpl filter = new FilterImpl(selector, "select * from [nt:base] as a where jcr:primaryType = 'nt:unstructured')", new QueryEngineSettings());
          filter.restrictProperty("jcr:primaryType", Operator.EQUAL, PropertyValues.newString("nt:unstructured"));
          List<QueryIndex.OrderEntry> sortOrder = new LinkedList<QueryIndex.OrderEntry>();
          List<QueryIndex.IndexPlan> plans = solrQueryIndex.getPlans(filter, sortOrder, nodeState);
          assertEquals(0, plans.size());
      }
test_case.class_method_signature: SolrQueryIndexTest.testNoPlanWithOnlyPrimaryTypeRestrictionsEnabled()
test_case.full_signature: @Test public void testNoPlanWithOnlyPrimaryTypeRestrictionsEnabled()
test_case.identifier: testNoPlanWithOnlyPrimaryTypeRestrictionsEnabled
test_case.invocations: builder setProperty child child getNodeState newSelector restrictProperty newString getPlans assertEquals size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNoPlanWithOnlyPrimaryTypeRestrictionsEnabled()
focal_class.declarator: TYPE = "solr"
focal_class.modifier: public static final
focal_class.original_string: public static final String TYPE = "solr";
focal_class.type: String
focal_class.var_name: TYPE
focal_class.declarator: NATIVE_SOLR_QUERY = "native*solr"
focal_class.modifier: static final
focal_class.original_string: static final String NATIVE_SOLR_QUERY = "native*solr";
focal_class.type: String
focal_class.var_name: NATIVE_SOLR_QUERY
focal_class.declarator: NATIVE_LUCENE_QUERY = "native*lucene"
focal_class.modifier: static final
focal_class.original_string: static final String NATIVE_LUCENE_QUERY = "native*lucene";
focal_class.type: String
focal_class.var_name: NATIVE_LUCENE_QUERY
focal_class.declarator: MIN_COST = 2.3
focal_class.modifier: private static
focal_class.original_string: private static double MIN_COST = 2.3;
focal_class.type: double
focal_class.var_name: MIN_COST
focal_class.declarator: log = LoggerFactory.getLogger(SolrQueryIndex.class)
focal_class.modifier: private final
focal_class.original_string: private final Logger log = LoggerFactory.getLogger(SolrQueryIndex.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: aggregator
focal_class.modifier: private final
focal_class.original_string: private final NodeAggregator aggregator;
focal_class.type: NodeAggregator
focal_class.var_name: aggregator
focal_class.declarator: fallbackOakSolrConfigurationProvider
focal_class.modifier: private final
focal_class.original_string: private final OakSolrConfigurationProvider fallbackOakSolrConfigurationProvider;
focal_class.type: OakSolrConfigurationProvider
focal_class.var_name: fallbackOakSolrConfigurationProvider
focal_class.declarator: fallbackSolrServerProvider
focal_class.modifier: private final
focal_class.original_string: private final SolrServerProvider fallbackSolrServerProvider;
focal_class.type: SolrServerProvider
focal_class.var_name: fallbackSolrServerProvider
focal_class.declarator: estimators = new WeakHashMap<String, LMSEstimator>()
focal_class.modifier: private static final
focal_class.original_string: private static final Map<String, LMSEstimator> estimators = new WeakHashMap<String, LMSEstimator>();
focal_class.type: Map<String, LMSEstimator>
focal_class.var_name: estimators
focal_class.file: oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndex.java
focal_class.identifier: SolrQueryIndex
focal_class.interfaces: implements FulltextQueryIndex, QueryIndex.AdvanceFulltextQueryIndex
focal_class.class_method_signature: SolrQueryIndex.SolrQueryIndex(NodeAggregator aggregator, OakSolrConfigurationProvider oakSolrConfigurationProvider, SolrServerProvider solrServerProvider)
focal_class.full_signature: public  SolrQueryIndex(NodeAggregator aggregator, OakSolrConfigurationProvider oakSolrConfigurationProvider, SolrServerProvider solrServerProvider)
focal_class.identifier: SolrQueryIndex
focal_class.modifiers: public
focal_class.parameters: (NodeAggregator aggregator, OakSolrConfigurationProvider oakSolrConfigurationProvider, SolrServerProvider solrServerProvider)
focal_class.signature:  SolrQueryIndex(NodeAggregator aggregator, OakSolrConfigurationProvider oakSolrConfigurationProvider, SolrServerProvider solrServerProvider)
focal_class.class_method_signature: SolrQueryIndex.getMinimumCost()
focal_class.full_signature: @Override public double getMinimumCost()
focal_class.identifier: getMinimumCost
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: double
focal_class.signature: double getMinimumCost()
focal_class.class_method_signature: SolrQueryIndex.getIndexName()
focal_class.full_signature: @Override public String getIndexName()
focal_class.identifier: getIndexName
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getIndexName()
focal_class.class_method_signature: SolrQueryIndex.getCost(Filter filter, NodeState root)
focal_class.full_signature: @Override public double getCost(Filter filter, NodeState root)
focal_class.identifier: getCost
focal_class.modifiers: @Override public
focal_class.parameters: (Filter filter, NodeState root)
focal_class.return: double
focal_class.signature: double getCost(Filter filter, NodeState root)
focal_class.class_method_signature: SolrQueryIndex.getMatchingFilterRestrictions(Filter filter, OakSolrConfiguration configuration)
focal_class.full_signature:  int getMatchingFilterRestrictions(Filter filter, OakSolrConfiguration configuration)
focal_class.identifier: getMatchingFilterRestrictions
focal_class.parameters: (Filter filter, OakSolrConfiguration configuration)
focal_class.return: int
focal_class.signature: int getMatchingFilterRestrictions(Filter filter, OakSolrConfiguration configuration)
focal_class.class_method_signature: SolrQueryIndex.hasIgnoredProperties(Collection<Filter.PropertyRestriction> propertyRestrictions, OakSolrConfiguration configuration)
focal_class.full_signature: private static boolean hasIgnoredProperties(Collection<Filter.PropertyRestriction> propertyRestrictions, OakSolrConfiguration configuration)
focal_class.identifier: hasIgnoredProperties
focal_class.modifiers: private static
focal_class.parameters: (Collection<Filter.PropertyRestriction> propertyRestrictions, OakSolrConfiguration configuration)
focal_class.return: boolean
focal_class.signature: boolean hasIgnoredProperties(Collection<Filter.PropertyRestriction> propertyRestrictions, OakSolrConfiguration configuration)
focal_class.class_method_signature: SolrQueryIndex.getPlan(Filter filter, NodeState nodeState)
focal_class.full_signature: @Override public String getPlan(Filter filter, NodeState nodeState)
focal_class.identifier: getPlan
focal_class.modifiers: @Override public
focal_class.parameters: (Filter filter, NodeState nodeState)
focal_class.return: String
focal_class.signature: String getPlan(Filter filter, NodeState nodeState)
focal_class.class_method_signature: SolrQueryIndex.getRelativePaths(FullTextExpression ft)
focal_class.full_signature: private static Set<String> getRelativePaths(FullTextExpression ft)
focal_class.identifier: getRelativePaths
focal_class.modifiers: private static
focal_class.parameters: (FullTextExpression ft)
focal_class.return: Set<String>
focal_class.signature: Set<String> getRelativePaths(FullTextExpression ft)
focal_class.class_method_signature: SolrQueryIndex.query(final IndexPlan plan, final NodeState root)
focal_class.full_signature: @Override public Cursor query(final IndexPlan plan, final NodeState root)
focal_class.identifier: query
focal_class.modifiers: @Override public
focal_class.parameters: (final IndexPlan plan, final NodeState root)
focal_class.return: Cursor
focal_class.signature: Cursor query(final IndexPlan plan, final NodeState root)
focal_class.class_method_signature: SolrQueryIndex.getEstimator(String path)
focal_class.full_signature: private synchronized LMSEstimator getEstimator(String path)
focal_class.identifier: getEstimator
focal_class.modifiers: private synchronized
focal_class.parameters: (String path)
focal_class.return: LMSEstimator
focal_class.signature: LMSEstimator getEstimator(String path)
focal_class.class_method_signature: SolrQueryIndex.getServer(String path, NodeState root)
focal_class.full_signature: private SolrClient getServer(String path, NodeState root)
focal_class.identifier: getServer
focal_class.modifiers: private
focal_class.parameters: (String path, NodeState root)
focal_class.return: SolrClient
focal_class.signature: SolrClient getServer(String path, NodeState root)
focal_class.class_method_signature: SolrQueryIndex.getIterator(final Filter filter, final IndexPlan plan,
                                                          final String parent, final int parentDepth,
                                                          final OakSolrConfiguration configuration, final SolrClient solrServer,
                                                          final LMSEstimator estimator)
focal_class.full_signature: private AbstractIterator<SolrResultRow> getIterator(final Filter filter, final IndexPlan plan,
                                                          final String parent, final int parentDepth,
                                                          final OakSolrConfiguration configuration, final SolrClient solrServer,
                                                          final LMSEstimator estimator)
focal_class.identifier: getIterator
focal_class.modifiers: private
focal_class.parameters: (final Filter filter, final IndexPlan plan,
                                                          final String parent, final int parentDepth,
                                                          final OakSolrConfiguration configuration, final SolrClient solrServer,
                                                          final LMSEstimator estimator)
focal_class.return: AbstractIterator<SolrResultRow>
focal_class.signature: AbstractIterator<SolrResultRow> getIterator(final Filter filter, final IndexPlan plan,
                                                          final String parent, final int parentDepth,
                                                          final OakSolrConfiguration configuration, final SolrClient solrServer,
                                                          final LMSEstimator estimator)
focal_class.class_method_signature: SolrQueryIndex.filterFacet(SolrDocument doc, FacetField facetField)
focal_class.full_signature: private void filterFacet(SolrDocument doc, FacetField facetField)
focal_class.identifier: filterFacet
focal_class.modifiers: private
focal_class.parameters: (SolrDocument doc, FacetField facetField)
focal_class.return: void
focal_class.signature: void filterFacet(SolrDocument doc, FacetField facetField)
focal_class.class_method_signature: SolrQueryIndex.putSpellChecks(SpellCheckResponse spellCheckResponse,
                                  final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.full_signature: private void putSpellChecks(SpellCheckResponse spellCheckResponse,
                                  final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.identifier: putSpellChecks
focal_class.modifiers: private
focal_class.parameters: (SpellCheckResponse spellCheckResponse,
                                  final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.return: void
focal_class.signature: void putSpellChecks(SpellCheckResponse spellCheckResponse,
                                  final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.class_method_signature: SolrQueryIndex.putSuggestions(Set<Map.Entry<String, Object>> suggestEntries, final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.full_signature: private void putSuggestions(Set<Map.Entry<String, Object>> suggestEntries, final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.identifier: putSuggestions
focal_class.modifiers: private
focal_class.parameters: (Set<Map.Entry<String, Object>> suggestEntries, final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.return: void
focal_class.signature: void putSuggestions(Set<Map.Entry<String, Object>> suggestEntries, final Deque<SolrResultRow> queue,
                                  Filter filter, OakSolrConfiguration configuration, SolrClient solrServer)
focal_class.class_method_signature: SolrQueryIndex.isIgnoredProperty(Filter.PropertyRestriction property, OakSolrConfiguration configuration)
focal_class.full_signature: static boolean isIgnoredProperty(Filter.PropertyRestriction property, OakSolrConfiguration configuration)
focal_class.identifier: isIgnoredProperty
focal_class.modifiers: static
focal_class.parameters: (Filter.PropertyRestriction property, OakSolrConfiguration configuration)
focal_class.return: boolean
focal_class.signature: boolean isIgnoredProperty(Filter.PropertyRestriction property, OakSolrConfiguration configuration)
focal_class.class_method_signature: SolrQueryIndex.getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_class.full_signature: @Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_class.identifier: getPlans
focal_class.modifiers: @Override public
focal_class.parameters: (Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_class.return: List<IndexPlan>
focal_class.signature: List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_class.class_method_signature: SolrQueryIndex.getConfiguration(String path, NodeState rootState)
focal_class.full_signature: private OakSolrConfiguration getConfiguration(String path, NodeState rootState)
focal_class.identifier: getConfiguration
focal_class.modifiers: private
focal_class.parameters: (String path, NodeState rootState)
focal_class.return: OakSolrConfiguration
focal_class.signature: OakSolrConfiguration getConfiguration(String path, NodeState rootState)
focal_class.class_method_signature: SolrQueryIndex.getIndexPlan(Filter filter, OakSolrConfiguration configuration, LMSEstimator estimator,
                                     List<OrderEntry> sortOrder, String path)
focal_class.full_signature: private IndexPlan getIndexPlan(Filter filter, OakSolrConfiguration configuration, LMSEstimator estimator,
                                     List<OrderEntry> sortOrder, String path)
focal_class.identifier: getIndexPlan
focal_class.modifiers: private
focal_class.parameters: (Filter filter, OakSolrConfiguration configuration, LMSEstimator estimator,
                                     List<OrderEntry> sortOrder, String path)
focal_class.return: IndexPlan
focal_class.signature: IndexPlan getIndexPlan(Filter filter, OakSolrConfiguration configuration, LMSEstimator estimator,
                                     List<OrderEntry> sortOrder, String path)
focal_class.class_method_signature: SolrQueryIndex.getPathPrefix(String indexPath)
focal_class.full_signature: private String getPathPrefix(String indexPath)
focal_class.identifier: getPathPrefix
focal_class.modifiers: private
focal_class.parameters: (String indexPath)
focal_class.return: String
focal_class.signature: String getPathPrefix(String indexPath)
focal_class.class_method_signature: SolrQueryIndex.planBuilder(Filter filter)
focal_class.full_signature: private IndexPlan.Builder planBuilder(Filter filter)
focal_class.identifier: planBuilder
focal_class.modifiers: private
focal_class.parameters: (Filter filter)
focal_class.return: IndexPlan.Builder
focal_class.signature: IndexPlan.Builder planBuilder(Filter filter)
focal_class.class_method_signature: SolrQueryIndex.getPlanDescription(IndexPlan plan, NodeState root)
focal_class.full_signature: @Override public String getPlanDescription(IndexPlan plan, NodeState root)
focal_class.identifier: getPlanDescription
focal_class.modifiers: @Override public
focal_class.parameters: (IndexPlan plan, NodeState root)
focal_class.return: String
focal_class.signature: String getPlanDescription(IndexPlan plan, NodeState root)
focal_class.class_method_signature: SolrQueryIndex.query(Filter filter, NodeState rootState)
focal_class.full_signature: @Override public Cursor query(Filter filter, NodeState rootState)
focal_class.identifier: query
focal_class.modifiers: @Override public
focal_class.parameters: (Filter filter, NodeState rootState)
focal_class.return: Cursor
focal_class.signature: Cursor query(Filter filter, NodeState rootState)
focal_class.class_method_signature: SolrQueryIndex.getNodeAggregator()
focal_class.full_signature: @Override @Nullable public NodeAggregator getNodeAggregator()
focal_class.identifier: getNodeAggregator
focal_class.modifiers: @Override @Nullable public
focal_class.parameters: ()
focal_class.return: NodeAggregator
focal_class.signature: NodeAggregator getNodeAggregator()
focal_method.body: @Override
      public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) {
  
          Collection<String> indexPaths = new SolrIndexLookup(rootState).collectIndexNodePaths(filter);
          List<IndexPlan> plans = Lists.newArrayListWithCapacity(indexPaths.size());
  
          log.debug("looking for plans for paths : {}", indexPaths);
          for (String path : indexPaths) {
              OakSolrConfiguration configuration = getConfiguration(path, rootState);
              SolrClient solrServer = getServer(path, rootState);
              log.debug("building plan for server {} and configuration {}", solrServer, configuration);
              // only provide the plan if both valid configuration and server exist
              if (configuration != null && solrServer != null) {
                  LMSEstimator estimator = getEstimator(path);
                  IndexPlan plan = getIndexPlan(filter, configuration, estimator, sortOrder, path);
                  if (plan != null) {
                      plans.add(plan);
                  }
              }
          }
          return plans;
      }
focal_method.class_method_signature: SolrQueryIndex.getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_method.full_signature: @Override public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_method.identifier: getPlans
focal_method.invocations: collectIndexNodePaths newArrayListWithCapacity size debug getConfiguration getServer debug getEstimator getIndexPlan add
focal_method.modifiers: @Override public
focal_method.parameters: (Filter filter, List<OrderEntry> sortOrder, NodeState rootState)
focal_method.return: List<IndexPlan>
focal_method.signature: List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState)