2017-10-10 3 views
0

大きなデータセットを使用してpythonスクリプトによって自動的に生成されたページを持っていた生産用メディアウィキサーバーを継承しました。この特定のwikiには約200万ページがあります。一部のフレーズ検索で明らかに必要な結果が得られていないことがわかりました。そこで、mediawikiのようにmaintenance/rebuildtextindex.phpを実行しました。検索結果が正しく返されます。問題は、単語がうまく検索しているが、フレーズは検索していないということです。例えば。引用符のない「word1 word2」は、数秒以内に結果を返しますが、最終的に結果を返す前に、ブラウザには「ドメインを待っています...」という文字列が分かります。mediawikiがrebuildtextindex.phpを実行してフレーズ検索に数分かかる

このスクリプトの問題を調べてみましたが、mediawikiのバージョンは1.24です。そのため、検索インデックステーブルを削除しても、削除しなくてもスクリプトを実行しようとしました。どちらも同じ結果をもたらします。

私はmediawikiを使い慣れていて、基本的なPHPを理解するのに十分な知識を持っていますが、私はSQLでも問題ありません。フレーズ検索をより速くするにはどうすればよいですか?

答えて

0

Native MediaWikiは実際には数十億語の意味ではないMySQL全文索引付けを使用しています(ページあたり1000語を仮定すると"word1 word2"は10^18行のJOINに変換されます...)。おそらく、検索のために開発された技術(例えば、CirrusSearch拡張によるElasticSearch)を使用するべきです。

関連する問題