Я создал общую форму поиска с php для запроса полного текста текста couchdb-lucene. образец кода:
<?php
if($_POST['formSubmit'] == "Submit") {
$varKeyword = $_POST['formKeyword'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://00.000.00.158:5984/_fti/local/elod_empty/_design/sellerAll/In_All_Json?q=".$varKeyword);
echo($varKeyword);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-type: application/json; charset=utf-8',
'Accept: */*'
));
$response = curl_exec($ch);
curl_close($ch);
echo($response);
}
?>
<html>
<head>
<title>search Form</title>
</head>
<body>
<form action="search2.php" method="post">
<p>
enter search keyword<br>
<input type="text" name="formKeyword" maxlength="50" value="<?=$varKeyword;?>" />
<input type="submit" name="formSubmit" value="Submit">
<input type="submit" name="formClear" value="clear">
</p>
</body>
</html>
проблема в том, что я не могу искать не латинские символы (греческий)> Результат:
{"reason":"Bad query syntax: Cannot parse '': Encountered \"\" at line 1, column 0.\nWas expecting one of:\n ...\n \"+\" ...\n \"-\" ...\n ...\n \"(\" ...\n \"*\" ...\n ...\n ...\n ...\n ...\n ...\n \"[\" ...\n \"{\" ...\n ...\n ...\n \"*\" ...\n ","code":400}
в то время как: 1) Я получаю латинские результаты, если мое ключевое слово - латинское 2) Я получаю нелатинские результаты, если я запрашиваю couchdb из командной строки (ubuntu 14.04) или любого браузера с нелатинским, например
http://00.000.00.158:5984/_fti/local/elod_sellers/_design/sellerAll/In_All_Json?q='non latin'
или
curl http://00.00.00.158:5984/_fti/local/elod_sellers/_design/sellerAll/In_All_Json?q='non latin'
версия couchdb - 1.5.0. и lucene 1.0.2 couchdb lucene log говорит: "org.eclipse.jetty.util.Utf8Appendable $ NotUtf8Exception: Недействительно UTF8"
Любое предложение было бы действительно полезно!
<form action="search2.php" method="post">
заменяется на:
<form action="search2.php" method="post" accept-charset="UTF-8">