2016-07-07 4 views
0

검색 색인이 있으며 특정 필드를 조건부로 검색 할 lucene 쿼리가 필요합니다. 최종 결과는 웹 사이트에 로그인하면 모든 필드가 검색되거나 로그 아웃 된 경우 lucene 쿼리를 수정하여 지정된 필드를 건너 뜁니다.Lucene - 검색 할 필드를 제외하십시오.

순간에 내가 가지고있는 가장 가까운입니다

+(term1~ term2~) +_culture:([en-gb TO en-gb] [invariantifieldivaluei TO invariantifieldivaluei]) **-FieldToIgnore1:(term1 term2) -FieldToIgnore2:(term1 term2)** 

이 검색어 중 하나가 필드하지 언급 (FieldToIgnore1 또는 FieldToIgnore2) 중 하나에있는 경우 이것에 대한 문제는 그러나이며, 다음 문서는 무시할 필드 중 하나가 일치 할 때 제외 되었기 때문에 무시되었습니다.

lucene이 무시할 필드와 일치하지 않도록 어떻게 수정할 수 있습니까?

+0

나는 이해할 수 없다. 일반적으로 필드를 무시하는 것은 꽤 쉽습니다. 해당 필드에서 * 검색하지 마십시오. 'MultiFieldQueryParser' 또는 무엇인가를 사용하고 있습니까? 또는 기본 검색 필드가 어떤 종류의 포괄적 인 필드입니까? 또는 무엇을? – femtoRgon

+0

죄송합니다 - 나는 Lucene 용어에 익숙하지 않지만 캐치 올 필드 옵션이라고 생각합니다. 이 기능은 [Lucene query parser syntax] (http : //lucene.apache)를 사용하는 [Kentico CMS의 스마트 검색] (https://docs.kentico.com/display/K9/Smart+search+syntax) .org/core/3_0_3/queryparsersyntax.html) 도움이된다면? – ajbrun

+0

그런 경우에는 일치하는 필드가 어떤 것인지 알 수있는 방법이 없을 수 있습니다. "모든"필드는 단어의 큰 가방 일 것입니다. 원하는 필드 만 검색하도록 쿼리를 작성해야합니다 (또는 검색 할 필드 만 결합한 별도의 검색 필드를 인덱싱 할 수도 있음). 나는 Kentico에 관해서는 아무 것도 모른다. 그래서 당신의 지수 등을 조정할 수 있는지에 대해서는 모른다. – femtoRgon

답변

0

Lucene 및 Smart Search Results 웹 파트를 통해 검색을 한정하는 대신 문서 필드 자체의 검색 가능성을 수정 해 보았습니다. 페이지 유형 또는 색인 자체에서 검색 매개 변수를 설정할 수 있습니다.

페이지 유형 -> [사용자 문서 유형] -> 검색 필드로 이동하고 검색 할 필드와 설정되지 않은 필드를 설정하십시오.

Page Types --> Articles --> Search fields (v.8.2)

버전 9가 당신에게 스마트 검색 앱에서 이러한 설정을 제공합니다. 자세한 내용은 these docs을 참조하십시오.

+0

감사합니다. Emma, ​​저는 이것을 고려해 보았습니다. 그러나 무시할 필드의 검색 가능성을 비활성화하면 요구 사항의 조건적인 측면에 맞지 않습니다. 로그인하면 모든 것을 검색 할 것입니다. 아마도 내 유일한 옵션은 이러한 필드를 제외하는 사용자 지정 검색 인덱스를 만드는 것입니다 - 난 그냥 lucene에 의해 처리 될 수있는 간단한 옵션이 될 줄 알았는데 ... – ajbrun

+0

Lucene 여전히 janky 있다면 (나는 혼합했다 검색 범위는 일반 사용자와 인증 된 사용자에 따라 다르므로 두 가지 검색 (또는 검색 결과) 웹 파트에 넣을 수 있습니다. 표시 줄을 '역할에 표시 : _notauthenticated_'로 설정하고 다른 설정을'역할에 표시 : _authenticated_'로 설정하십시오. – emmaclairez

+0

그러면 로그온 한 사용자의 웹 파트가 검색 색인의 모든 필드를 누를 수 있습니다 (Lucene 건너 뛰기). 다른 하나는 Lucene'-term'을 사용하여 해당 필드에 대해 차단됩니다. – emmaclairez