2017-03-29 14 views
1

私は、元々タグ付きHTML形式(複数のゾーン)のデータから、格納されたインデックステキストを変更するために、インデックス内のさまざまなregepx_filtersを実行しています。後で元のインデックスのゾーンのうちの1つだけを使用する最初の変更されたインデックスに基づいて2番目のインデックスを作成することは可能ですか?別のインデックスからインデックスを作成できますか?

index_zones = Title, Author, Description 

私は、カスタム設定でこれをインデックス化した後、私は、次の正規表現をしたインスタンスの

Create IndexB based on IndexA using ZONE:(Title) only

セイを言う何らかの方法でこのインデックスを複製することができます:

regexp_filter=(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>=>\1 Used\2 in order to index used into the Title Zone. 

今すぐインデックスを作成し直したり、インデックスを新しく作成したりしたいですか

<Title>Bla bla ipad bla bla Used</Title> 

これは可能ですか?そうでなければ、私は新たに索引付けされたテキストで自分のMySQLテーブルを更新できますか?

答えて

2

既存のスフィンクスインデックスに基づいてインデックスを作成することはできません。私はregexp_filteredの結果を取得することも可能ではないと考えています。

なぜあなたは正規表現をスフィンクスインデックス化する前にしないのですか?たとえば、新しいdbカラムipad_used_regexを作成し、これを任意のスクリプト言語で入力します。それともPCRE Regex Enhancementsあなたは、SQLには、このような正規表現の一致を構築できるとmariaDbを使用して:

SELECT Title, REGEXP_REPLACE(Title, "(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>", '\\1 Used\\2') as ipad_used_regex 
FROM `your_table` 

をあなたは、あなたのスフィンクスのインデックスソースにこのSQLを使用することができますか?

+0

私の例は非常にシンプルで流通していたので、ソースでSQlを使うのは面倒かもしれませんが、この場合はあくまでmysqlを前処理しなければならないようですあまりにも悪い避けられないオーバーヘッドを追加してください。 zone_weightsは*かなり*有用な追加です! – user3649739

関連する問題