Phoenix303 has uploaded a new change for review.
https://gerrit.wikimedia.org/r/225277
Change subject: Customize facets for translated and untranslated filters.
......................................................................
Customize facets for translated and untranslated filters.
Use "filter=translated" to get facets for translated messages
and "filter=untranslated" to get facets for untranslated messages.
Bug: T101220
Change-Id: I6a162871e0b669162d95a44727cce7ed7c6f36a9
---
M specials/SpecialSearchTranslations.php
M ttmserver/ElasticSearchTTMServer.php
2 files changed, 58 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate
refs/changes/77/225277/1
diff --git a/specials/SpecialSearchTranslations.php
b/specials/SpecialSearchTranslations.php
index 17c880e..88650bd 100644
--- a/specials/SpecialSearchTranslations.php
+++ b/specials/SpecialSearchTranslations.php
@@ -88,6 +88,12 @@
}
// Part 1: facets
+ if ( method_exists( $server, 'makeFacets' )
+ && ( $opts->getValue( 'filter' ) === 'translated' ||
$opts->getValue( 'filter' ) === 'untranslated' )
+ ) {
+ $resultset = $server->makeFacets( $terms, $opts );
+ }
+
$facets = $server->getFacets( $resultset );
$total = $server->getTotalHits( $resultset );
$facetHtml = '';
diff --git a/ttmserver/ElasticSearchTTMServer.php
b/ttmserver/ElasticSearchTTMServer.php
index c0dbb55..b214c08 100644
--- a/ttmserver/ElasticSearchTTMServer.php
+++ b/ttmserver/ElasticSearchTTMServer.php
@@ -533,6 +533,58 @@
}
}
+ // Fetch data for facets counts
+ public function makeFacets( $terms, $opts ) {
+
+ $filteredQuery = new \Elastica\Query\Filtered();
+ $idQuery = new \Elastica\Filter\Terms();
+ $idQuery->setTerms( 'localid', $terms );
+
+ $filteredQuery->setFilter($idQuery);
+ $query = new \Elastica\Query();
+
+ $query->setQuery( $filteredQuery );
+
+ // Language facet to retrieve count for each language
+ $language = new \Elastica\Facet\Terms( 'language' );
+ $language->setField( 'language' );
+ $language->setSize( 600 );
+ $query->addFacet( $language );
+
+ // Group facet to retrieve count for each group
+ $group = new \Elastica\Facet\Terms( 'group' );
+ $group->setField( 'group' );
+ $group->setSize( 500 );
+ $query->addFacet( $group );
+
+ $filters = new \Elastica\Filter\Bool();
+
+ $language = $opts->getValue( 'language' );
+ $languageFilter = new \Elastica\Filter\Term();
+ $languageFilter->setTerm( 'language', $language );
+ $filters->addMust( $languageFilter );
+
+ $group = $opts->getValue( 'group' );
+ if ( $group !== '' ) {
+ $groupFilter = new \Elastica\Filter\Term();
+ $groupFilter->setTerm( 'group', $group );
+ $filters->addMust( $groupFilter );
+ }
+ $query->setFilter( $filters );
+
+ $offset = $opts->getValue( 'offset' );
+ $limit = $opts->getValue( 'limit' );
+ $query->setFrom( $offset );
+ $query->setSize( $limit );
+ $query->setParam( '_source', array( 'content', 'localid',
'language', 'group', 'wiki' ) );
+
+ try {
+ return $this->getType()->getIndex()->search( $query );
+ } catch ( \Elastica\Exception\ExceptionInterface $e ) {
+ throw new TTMServerException( $e->getMessage() );
+ }
+ }
+
public function getFacets( $resultset ) {
$facets = $resultset->getFacets();
--
To view, visit https://gerrit.wikimedia.org/r/225277
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6a162871e0b669162d95a44727cce7ed7c6f36a9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Phoenix303 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits