2015-02-03 4 views
0

10 개의 필드가 모두 검색 가능한 문자열이고 내 searchMode가 "모두"인 매우 간단한 색인이 있습니다.Azure 검색 결과가 일치하지 않음

간단히하기 위해 다음 검색을 실행한다고 가정 해 보겠습니다. - (x | y | z) x, y 또는 z가없는 모든 문서를 가져옵니다.

다음 검색을 실행한다고 가정 해 봅시다. (i + j) 그리고 i와 j라는 용어가 포함 된 모든 문서를 가져옵니다.

그리고 두 검색에서 반환되는 문서간에 괜찮은 오버랩이 있다고 가정 해 봅시다.

나는 "모든"searchMode에 내가이 다음을 실행하면 생각했을

: (나는 J +) - (X | Y | Z) 나는 그렇지는 I의 부분 집합 및 J를받을

을 x, y 또는 z를 포함합니다. 즉, 조합 된 쿼리의 결과에는 개별 쿼리 결과의 항목 - (x | y | z)가 포함되지 않습니다.

하지만 그건 사실이 아닙니다.

기능을 잘못 이해하고 있거나 잘못된 결과가 나타납니다.

누군가 나에게 설명해 줄 수 있습니까?

감사합니다.

+0

더 자세히 살펴보기 전에 간단한 질문을 드리겠습니다. 요청을 벗어 났습니까? +는 종종 URL 처리 스택에 의해 공간으로 이스케이프 처리되지 않습니다. 검색 문자열에 + 대신 % 2B가 있어야합니다 (일반적으로 URL 이스케이프 검색 입력을 확인해야합니다). –

+0

파블로 - 당신이 맞았습니다 - 실제로 중개 서비스를 사용하기 위해서는 UI에서 래퍼 웹 서비스로 정확히 검색 문자열을 가져 와서 실제 푸른 검색 끝점에 대해 다시해야합니다. 이제는해야한다고 생각했던대로 작동합니다. 대단히 감사합니다. – t316

+0

듣고 듣기 좋았습니다. 나는 미래에이 문제에 부딪 힐 수도있는 다른 사람들을 위해 아래의 대답으로 그것을 잡았다. –

답변

0

푸른 색 검색은 알려지지 않은 경우 일관된 응답을 제공해야합니다.

이 경우 URL에서 "+"를 이스케이프 처리 할 때 문제가 발생합니다 (의견보기 참조). URL 쿼리 문자열의 검색 텍스트를 이스케이프 처리해야합니다 (예 : +가 % 2B로 표시되어야 함). 그러나 특정 문자를 특수하게 처리하는 대신 모든 입력 검색 텍스트를 이스케이프 처리하는 것이 가장 좋습니다. 대부분의 환경에서 어떤 문자가 이스케이프해야하는지 알고 있습니다.)

관련 문제