MarkLogic에서 측면 검색을 설정하고 있습니다. 나는 다음과 같은 범위 인덱스가 구성 :Marklogic 측면 검색 및 데이터 정렬
입니다, 나는 두 개의 인덱스가 있습니다. 첫 번째는 네임 스페이스 http://www.corbas.co.uk/ns/presentations
이고 로컬 이름은 keyword
입니다. 두 번째 로컬 이름은 level
입니다. 두 가지의 조합 URI는 http://marklogic.com/collation/en/S1
입니다.
내가 정렬에 관련된 오류를 보려면 다음을 사용하여 검색하려고 :
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>)
나는 다음과 같은 오류 얻을 :
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
내가 잘못하고있는 중이 야 무엇을?
흠. 나는 mispasted하는 것처럼 보인다. 검색의 데이터 정렬 속성이 어디에 있는지 확실하지 않아서 소스 코드가 수정되었습니다. 동일한 오류가 적용됩니다. –
앱 서버의 기본 데이터 정렬의 의미는 무엇입니까? 색인에 지정된 데이터와 쿼리 된 데이터가 일치하지 않습니다. 이 증상 같은 건 없니? –
app-server의 기본 데이터 정렬 (또는 코드의 프롤로그)은 cts 함수와 문자열 비교에 대한 기본 데이터 정렬을 제공합니다.데이터 정렬을 명시 적으로 지정하지 않으면 영향을 미칩니다. 항상 그것을 지정하면 놀라움이 줄어 듭니다. – grtjn