Project

General

Profile

« Previous | Next » 

Revision 30124

added filter by index id in the inspector ui

View differences:

SolrIndexClient.java
86 86
		MetadataReference mdRef = new MetadataReference(getFormat(), getLayout(), getInterpretation());
87 87
		SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef);
88 88
		translatedQuery.setFacet(true);
89

  
89 90
		if (browseFields != null) {
90 91
			for (String field : browseFields) {
91 92
				translatedQuery.addFacetField(field);
......
108 109
	}
109 110

  
110 111
	/**
112
	 * {@inheritDoc}
113
	 *
114
	 * @throws IndexClientException
115
	 *
116
	 * @see eu.dnetlib.functionality.index.client.IndexClient#browse(java.lang.String, int)
117
	 */
118
	@Override
119
	public List<BrowseEntry> browse(final String query, final List<String> browseFields, final int max, final List<String> filterQuery)
120
			throws IndexClientException {
121
		MetadataReference mdRef = new MetadataReference(getFormat(), getLayout(), getInterpretation());
122
		SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef);
123
		translatedQuery.setFacet(true);
124
		if (filterQuery != null) {
125
			for (String fq : filterQuery) {
126
				translatedQuery.addFilterQuery(fq);
127
			}
128
		}
129

  
130
		if (browseFields != null) {
131
			for (String field : browseFields) {
132
				translatedQuery.addFacetField(field);
133

  
134
			}
135
			translatedQuery.setFacetLimit(max);
136
		}
137

  
138
		try {
139
			SolrIndexQueryResponse response = new SolrIndexQueryResponse(server.query(translatedQuery));
140
			QueryResponseParser responseParser = queryResponseFactory.getQueryResponseParser(response, mdRef);
141
			List<BrowsingRow> results = responseParser.getBrowsingResults();
142
			List<BrowseEntry> out = convertBrowsEntry(browseFields, results, responseParser.getAliases());
143
			return out;
144

  
145
		} catch (SolrServerException e) {
146
			throw new IndexClientException("Error on executing a query " + query, e);
147
		}
148

  
149
	}
150

  
151
	/**
111 152
	 * Creates the connection.
112 153
	 *
113 154
	 * @return the string
......
157 198
		SolrIndexQuery translatedQuery = (SolrIndexQuery) solrIndexQueryFactory.getIndexQuery(QueryLanguage.CQL, query, this, mdRef);
158 199
		translatedQuery.setQueryOffset(from);
159 200
		translatedQuery.setQueryLimit(to - from);
201
		if (filterQuery != null) {
202
			for (String fq : filterQuery) {
203
				translatedQuery.addFilterQuery(fq);
204
			}
205
		}
206

  
160 207
		try {
161 208
			SolrIndexQueryResponse response = new SolrIndexQueryResponse(server.query(translatedQuery));
162 209
			QueryResponseParser responseParser = queryResponseFactory.getQueryResponseParser(response, mdRef);

Also available in: Unified diff