List of usage examples for org.apache.solr.schema FieldType readableToIndexed
public void readableToIndexed(CharSequence val, BytesRefBuilder result)
From source file:org.alfresco.solr.SolrInformationServer.java
License:Open Source License
@Override public List<NodeMetaData> getCascadeNodes(List<Long> txnIds) throws AuthenticationException, IOException, JSONException { List<FieldInstance> list = AlfrescoSolrDataModel.getInstance() .getIndexedFieldNamesForProperty(ContentModel.PROP_CASCADE_TX).getFields(); FieldInstance fieldInstance = list.get(0); RefCounted<SolrIndexSearcher> refCounted = null; IntArrayList docList;//from w w w . j av a 2s . co m Set<Long> parentNodesId = new HashSet<>(); try { refCounted = core.getSearcher(); SolrIndexSearcher searcher = refCounted.get(); String field = fieldInstance.getField(); SchemaField schemaField = searcher.getSchema().getField(field); FieldType fieldType = schemaField.getType(); BooleanQuery.Builder builder = new BooleanQuery.Builder(); BooleanQuery booleanQuery; for (Long l : txnIds) { BytesRefBuilder bytesRefBuilder = new BytesRefBuilder(); fieldType.readableToIndexed(l.toString(), bytesRefBuilder); TermQuery termQuery = new TermQuery(new Term(field, bytesRefBuilder.toBytesRef())); BooleanClause booleanClause = new BooleanClause(termQuery, BooleanClause.Occur.SHOULD); builder.add(booleanClause); } booleanQuery = builder.build(); DocListCollector collector = new DocListCollector(); searcher.search(booleanQuery, collector); docList = collector.getDocs(); int size = docList.size(); for (int i = 0; i < size; i++) { int docId = docList.get(i); Document document = searcher.doc(docId, REQUEST_ONLY_ID_FIELD); IndexableField indexableField = document.getField(FIELD_SOLR4_ID); String id = indexableField.stringValue(); TenantAclIdDbId ids = AlfrescoSolrDataModel.decodeNodeDocumentId(id); parentNodesId.add(ids.dbId); } } finally { ofNullable(refCounted).ifPresent(RefCounted::decref); } List<NodeMetaData> allNodeMetaDatas = new ArrayList<>(); for (Long parentNodeId : parentNodesId) { NodeMetaDataParameters nmdp = new NodeMetaDataParameters(); nmdp.setFromNodeId(parentNodeId); nmdp.setToNodeId(parentNodeId); nmdp.setIncludeAclId(false); nmdp.setIncludeChildAssociations(false); nmdp.setIncludeChildIds(true); nmdp.setIncludeOwner(false); nmdp.setIncludeParentAssociations(false); nmdp.setIncludePaths(true); nmdp.setIncludeProperties(false); nmdp.setIncludeTxnId(true); // Gets only one List<NodeMetaData> nodeMetaDatas = repositoryClient.getNodesMetaData(nmdp, 1); allNodeMetaDatas.addAll(nodeMetaDatas); } return allNodeMetaDatas; }