Je suis en train de configurer une recherche à facettes dans MarkLogic. Je les indices de gamme suivants configurés:Recherche et collisions à facettes Marklogic
C'est, j'ai deux indices. Le premier est sur l'espace de noms http://www.corbas.co.uk/ns/presentations
et le nom local keyword
. Le second a le nom local level
. L'URI de collation pour les deux est http://marklogic.com/collation/en/S1
.
Lorsque je tente de recherche à l'aide ce qui suit, je vois des erreurs liées à regroupement:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
search:search("levels:Intermediate",
<options xmlns="http://marklogic.com/appservices/search">
<return-results>true</return-results>
<return-facets>true</return-facets>
<constraint name="keywords" facet="true">
<range type="xs:string" collation="http://marklogic.com/collation/en/S1">
<element ns="http://www.corbas.co.uk/ns/presentations" name="keyword"/>
</range>
</constraint>
<constraint name="levels" facet="true">
<range type="xs:string" collation="http://marklogic.com/collation/en/S1">
<element ns="http://www.corbas.co.uk/ns/presentations" name="level"/>
</range>
</constraint>
</options>)
Je reçois l'erreur suivante:
XDMP-ELEMRIDXNOTFOUND: cts:search(fn:collection(),
cts:element-range query(fn:QName("http://www.corbas.co.uk/ns/presentations","level"),
"=", "Intermediate", ("collation=http://marklogic.com/collation/en/S1"), 1),
("score-logtfidf", "faceted", cts:score-order("descending")),
xs:double("1"),()) -- No string element range index for
{http://www.corbas.co.uk/ns/presentations}level
collation=http://marklogic.com/collation/en/S1
Qu'est-ce que je fais mal?
Hmmm. J'ai l'air d'avoir mésadapté. Vous ne savez pas où sont passés les attributs de classement de la recherche - vous avez corrigé le code source - la même erreur s'applique. –
Quelle serait l'implication du classement par défaut du serveur de l'application, celui indiqué sur l'index et celui qui ne correspond pas? Quelque chose comme ce symptôme? –
Le classement par défaut sur app-server (ou dans le prologue de votre code) fournit un classement par défaut pour les fonctions cts et une comparaison de chaînes.Cela n'a d'effet que si vous ne spécifiez pas explicitement le classement. Toujours en spécifiant qu'il donne moins de surprises .. – grtjn