0
AngularJSとPHPを使用してクエリしたCloudantに検索インデックスがあります。CloudantとAngularJSによる具体的な検索
これまでのところ、十分な結果が得られていません。
例えば、fair:'Fair 2017'
の検索では、Fair 2016
などを含むFair
を含むすべての結果が得られます。
私はさまざまな検索タイプ(シンプル、スタンダード、クラシック)を試しましたが、すべての検索タイプで発生しました。
典型的なオブジェクト:
$scope.loadexhibitors = function(fair){
$scope.searchindex = fair.doc.fairname;
var $promisefairexh=$http({
url: 'databaseconnect/getexhibitors.php',
method: "GET",
params: {search: $scope.searchindex}
});
...
PHPビットは次のようになります:
<?php
$search = $_GET["search"];
$newsearch = str_replace(' ', '+', $search);
$url = "https://user:[email protected]/db/_design/fairs/_search/by_fair?q='$newsearch'&include_docs=true";
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
?>
そして、私のCloudant検索機能:
doc:Object
exhibitortype:"Project Space"
fair:"Fair 2017"
...
ここに私のAngularJSコードです
function (doc) {
index("default", doc.fair);
}
一方、Cloudant User Interfaceでは、検索インデックスをテストし、検索入力に二重引用符を含めると(たとえば、Fair 2016ではなく「Fair 2016」)、目的の結果が得られます。
ヒント?