Add content model indexing
authorStanislav Malyshev <smalyshev@gmail.com>
Thu, 26 Jan 2017 19:15:03 +0000 (11:15 -0800)
committerStanislav Malyshev <smalyshev@gmail.com>
Thu, 26 Jan 2017 23:42:52 +0000 (15:42 -0800)
Bug: T156371
Change-Id: I1514f9db70870ec05b30153cc56558af0a28b8c9

includes/content/ContentHandler.php
tests/phpunit/includes/content/ContentHandlerTest.php

index 5862bf1..119144a 100644 (file)
@@ -1104,7 +1104,6 @@ abstract class ContentHandler {
                        'category',
                        SearchIndexField::INDEX_TYPE_TEXT
                );
-
                $fields['category']->setFlag( SearchIndexField::FLAG_CASEFOLD );
 
                $fields['external_link'] = $engine->makeSearchFieldMapping(
@@ -1121,9 +1120,13 @@ abstract class ContentHandler {
                        'template',
                        SearchIndexField::INDEX_TYPE_KEYWORD
                );
-
                $fields['template']->setFlag( SearchIndexField::FLAG_CASEFOLD );
 
+               $fields['content_model'] = $engine->makeSearchFieldMapping(
+                       'content_model',
+                       SearchIndexField::INDEX_TYPE_KEYWORD
+               );
+
                return $fields;
        }
 
@@ -1170,6 +1173,7 @@ abstract class ContentHandler {
                        $fieldData['text'] = $text;
                        $fieldData['source_text'] = $text;
                        $fieldData['text_bytes'] = $content->getSize();
+                       $fieldData['content_model'] = $content->getModel();
                }
 
                Hooks::run( 'SearchDataForIndex', [ &$fieldData, $this, $page, $output, $engine ] );
index 91d2297..efd60e5 100644 (file)
@@ -409,6 +409,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                $this->assertArrayHasKey( 'external_link', $fields );
                $this->assertArrayHasKey( 'outgoing_link', $fields );
                $this->assertArrayHasKey( 'template', $fields );
+               $this->assertArrayHasKey( 'content_model', $fields );
        }
 
        private function newSearchEngine() {
@@ -445,6 +446,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                $this->assertArrayHasKey( 'language', $data );
                $this->assertArrayHasKey( 'testDataField', $data );
                $this->assertEquals( 'test content', $data['testDataField'] );
+               $this->assertEquals( 'wikitext', $data['content_model'] );
        }
 
        /**