use Cubist\Backpack\app\Magic\Models\Locale;
use Cubist\Backpack\app\Magic\Menu\Menu;
+use Cubist\Backpack\Facades\App;
use Cubist\Util\XML\DOMSelector;
use Cviebrock\LaravelElasticsearch\Facade as Elasticsearch;
]
];
- public static function index($locale = 'all')
+ public static function index($variant = 'all', $locale = 'all')
+ {
+ if ($variant !== 'all') {
+ self::indexVariant($variant, $locale);
+ return;
+ }
+
+ foreach (App::getVariants() as $v) {
+ self::indexVariant($v, $locale);
+ }
+ }
+
+ public static function indexVariant($variant, $locale = 'all')
{
if ($locale !== 'all') {
- self::indexLocale($locale);
+ self::indexLocale($variant, $locale);
return;
}
foreach (Locale::getLocales() as $l) {
- self::indexLocale($l->locale);
+ self::indexLocale($variant, $l->locale);
}
}
- public static function indexLocale($locale)
+
+ public static function indexLocale($variant, $locale)
{
- $index = config('cubist.internal_search_index') . '_' . $locale;
+ $index = self::_getIndexKey($locale, $variant);
try {
Elasticsearch::indices()->delete(['index' => $index]);
]);
/** @var Cubist\Backpack\app\Magic\Menu\Item[] $pages */
- $pages = Menu::getAllNavigablePages($locale);
+ $pages = Menu::getAllNavigablePages($locale, $variant);
$indexed = [];
foreach ($pages as $url => $page) {
return self::$_analysis[$locale];
}
- public static function query($term, $locale, $type = null, $limit = null)
+ protected static function _getIndexKey($locale, $variant = null)
+ {
+ if (null === $variant) {
+ $variant = App::getVariant();
+ }
+ return md5(config('cubist.internal_search_index') . '_' . $variant . '_' . $locale);
+ }
+
+ public static function query($term, $locale, $variant = null, $type = null, $limit = null)
{
- $index = config('cubist.internal_search_index') . '_' . $locale;
+ $index = self::_getIndexKey($locale, $variant);
if (null === $limit) {
$limit = 50;
}