2017-12-04 1 views
1

私はWebアプリケーション(PHP言語)にCarrot2をインストールしました。すべてが完璧に動作します。今私は私の結果の言語を変更したい。私はフランス語のために英語を変更したい。私はcarrot2のドキュメントをWeb上で検索しますが、私は何を望んでいるのかわかりませんでした(このリンクは役に立ちましたが、dcsフォルダの内容はこの投稿http://carrot2-users-and-developers-forum.607571.n2.nabble.com/Change-Language-in-DCS-REST-PHP-td639270.html以降に変更されたようです)。とにかく、単純な形式(および異なる変数)で私のパラメタ(algo、query、sourceなど)を渡し、curlを使ってcarrot2のメソッドに(PHPを)送信します。キャロット2 dcs言語

$language = 'lang_fr'; // or $language = 'FRENCH' 
$num = (isset($_GET["maxResult"])) ? $_GET["maxResult"] : "10"; 
$query = urlencode($_GET["query"]); 
$source = "web"; 
$algorithm = "lingo"; 
$hierarchy = "max-hierarchy-depth"; 
$level_hierarchie= $_GET["deep"] ? $_GET["deep"] : "1"; 

$processor = new Carrot2Processor(); 
$job = new Carrot2Job(); 
$job->setSource($source); 
$job->setQuery($query); 
$job->setAlgorithm($algorithm); 
$job->setAttribute("results", $num); 
$job->setAttribute($hierarchy, $level_hierarchie); 

iはのsetAttribute()目的球でこのように言語を設定しようとしましたが、もちろん、それは動作しません:私はフランス語を送信する(奇妙または野蛮な)さまざまな方法を試してみました。

$job->setAttribute("language", $language); 

try { 
    $result = $processor->cluster($job); 
} catch (Carrot2Exception $e) { 
    echo 'An error occurred during processing: ' . $e->getMessage(); 
    exit(10); 
} 

私はまた( 'Accept-langugage: fr'を追加)CURLOPT_HTTPHEADERを変更しようとしました。 私はさまざまな回答を見ていますが、phpを使ってjavaとimを使っているdeveloppersだけです。 PHPのsetAttribute()メソッドで言語選択を渡すことは可能ですか?誰かがそれを行う方法を知っていますか?

は、メタ検索エンジンは、あなたがあなたを呼び出すコードに直接 EToolsDocumentSource.language属性を設定することができますeToolsについては

+0

解決策が見つかりました。私は自分のdcs/warフォルダ内のcarrot2-dcs.warファイルを変更しました。このフォルダには、すべてのjavaファイルとxmlファイルが含まれています。私は 'algorithm-lingo-attributes.xml'と 'source-etools-attributes.xml'を修正しました。私はコードのコメントを外し、 'ENGLISH'を 'FRENCH'に置き換えました。このコードを編集するには、warファイルの解凍と再圧縮が完全な混乱を招くため、私は7-zipを使用します。 これは行く方法ではない場合は、私にコメントを送信することを躊躇しないで動作しているようだ – Potter

答えて

0

(私はcarrot2-DCS-3.16を使用して)事前にありがとう:

$job->setAttribute("EToolsDocumentSource.language", "FRENCH");

参照してください。サポートされている言語のリストについて上記でリンクされた属性のドキュメント

+0

ありがとう、ずっと簡単に – Potter