Ich habe einen Suchindex auf meinem Cloudant, den ich mit AngularJS und PHP abfrage.Spezifische Suche mit Cloudant und AngularJS
Bis jetzt bekomme ich nicht spezifisch genug Ergebnisse.
Zum Beispiel, bei einer Suche mit fair:'Fair 2017'
, bekomme ich alle Ergebnisse, einschließlich Fair
, einschließlich Fair 2016
und so weiter.
Ich habe verschiedene Sucharten (einfach, Standard, klassisch) ausprobiert, und es passiert mit allen von ihnen.
Ein typisches Objekt:
doc:Object
exhibitortype:"Project Space"
fair:"Fair 2017"
...
Hier ist mein AngularJS Code:
$scope.loadexhibitors = function(fair){
$scope.searchindex = fair.doc.fairname;
var $promisefairexh=$http({
url: 'databaseconnect/getexhibitors.php',
method: "GET",
params: {search: $scope.searchindex}
});
...
Die PHP-Bit wie folgt aussieht:
<?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);
?>
Und meine Cloudant Suchfunktion:
function (doc) {
index("default", doc.fair);
}
Auf der Cloudant Benutzeroberfläche, wenn ich den Suchindex und doppelte Anführungszeichen auf die Sucheingabe (zum Beispiel: "Fair 2016" statt Fair 2016) testen, bekomme ich die gewünschten Ergebnisse.
Irgendwelche Tipps?