Differential D18580 Diff 44620 src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php
Show First 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | foreach ($document_fields as $field) { | ||||
case PhabricatorSearchDocumentFieldType::FIELD_TITLE: | case PhabricatorSearchDocumentFieldType::FIELD_TITLE: | ||||
case PhabricatorSearchDocumentFieldType::FIELD_BODY: | case PhabricatorSearchDocumentFieldType::FIELD_BODY: | ||||
$virtual_fields[] = array( | $virtual_fields[] = array( | ||||
PhabricatorSearchDocumentFieldType::FIELD_CORE, | PhabricatorSearchDocumentFieldType::FIELD_CORE, | ||||
$raw_corpus, | $raw_corpus, | ||||
); | ); | ||||
break; | break; | ||||
} | } | ||||
} | |||||
$key_all = PhabricatorSearchDocumentFieldType::FIELD_ALL; | $virtual_fields[] = array( | ||||
PhabricatorSearchDocumentFieldType::FIELD_ALL, | |||||
$raw_corpus, | |||||
); | |||||
} | |||||
$empty_template = array( | $empty_template = array( | ||||
'raw' => array(), | 'raw' => array(), | ||||
'term' => array(), | 'term' => array(), | ||||
'normal' => array(), | 'normal' => array(), | ||||
); | ); | ||||
$ferret_corpus_map = array( | $ferret_corpus_map = array(); | ||||
$key_all => $empty_template, | |||||
); | |||||
foreach ($virtual_fields as $field) { | foreach ($virtual_fields as $field) { | ||||
list($key, $raw_corpus) = $field; | list($key, $raw_corpus) = $field; | ||||
if (!strlen($raw_corpus)) { | if (!strlen($raw_corpus)) { | ||||
continue; | continue; | ||||
} | } | ||||
$term_corpus = $engine->newTermsCorpus($raw_corpus); | $term_corpus = $engine->newTermsCorpus($raw_corpus); | ||||
$normal_corpus = $stemmer->stemCorpus($raw_corpus); | $normal_corpus = $stemmer->stemCorpus($raw_corpus); | ||||
$normal_corpus = $engine->newTermsCorpus($normal_corpus); | $normal_corpus = $engine->newTermsCorpus($normal_corpus); | ||||
if (!isset($ferret_corpus_map[$key])) { | if (!isset($ferret_corpus_map[$key])) { | ||||
$ferret_corpus_map[$key] = $empty_template; | $ferret_corpus_map[$key] = $empty_template; | ||||
} | } | ||||
$ferret_corpus_map[$key]['raw'][] = $raw_corpus; | $ferret_corpus_map[$key]['raw'][] = $raw_corpus; | ||||
$ferret_corpus_map[$key]['term'][] = $term_corpus; | $ferret_corpus_map[$key]['term'][] = $term_corpus; | ||||
$ferret_corpus_map[$key]['normal'][] = $normal_corpus; | $ferret_corpus_map[$key]['normal'][] = $normal_corpus; | ||||
$ferret_corpus_map[$key_all]['raw'][] = $raw_corpus; | |||||
$ferret_corpus_map[$key_all]['term'][] = $term_corpus; | |||||
$ferret_corpus_map[$key_all]['normal'][] = $normal_corpus; | |||||
} | } | ||||
$ferret_fields = array(); | $ferret_fields = array(); | ||||
$ngrams_source = array(); | $ngrams_source = array(); | ||||
foreach ($ferret_corpus_map as $key => $fields) { | foreach ($ferret_corpus_map as $key => $fields) { | ||||
$raw_corpus = $fields['raw']; | $raw_corpus = $fields['raw']; | ||||
$raw_corpus = implode("\n", $raw_corpus); | $raw_corpus = implode("\n", $raw_corpus); | ||||
if (strlen($raw_corpus)) { | if (strlen($raw_corpus)) { | ||||
▲ Show 20 Lines • Show All 121 Lines • Show Last 20 Lines |