2009-06-10 2 views
6

Lucene을 사용하는 회사 검색 API를 연구 중입니다. 내 루씬 회사 지수는이 개 회사 가지고있다 : 1.Abigail 아담스 국립 Bancorp의 주식 2.National Bancorp의Lucene 검색 API를 사용하여 완전 일치 검색하기

을 만 회사 # 2 (. 즉, 국가 Bancorp의) 국립 Bancorp의에서 사용자 유형은 할 필요가있는 경우 반환되지 # 1 ..... 예. 일치하는 항목 만 반환해야합니다. 이 기능을 어떻게 수행합니까?

읽어 주셔서 감사합니다.

+0

미래의 수색자 : lucene-indexed 서비스를 검색하는 경우, Somonath Sabat의 업보트가없는 답은 최소한 한 번은 정확한 것으로 보입니다. - 큰 따옴표로 묶습니다. musicbrainz에 대한 확인. –

답변

11

KeywordAnalyzer을 사용하여이 필드의 색인을 생성하고 검색 할 수 있습니다. 키워드 분석기는 전체 문자열에 대해 하나의 토큰 만 생성합니다.

+0

이 답변을 제공해 주시겠습니까? http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for-multiple-requests –

1

질문을 올바르게 이해했는지 여부에 따라 요구 사항을 다시 생각해 볼 수 있습니다. 내가 너를 잘못 이해했다면 나랑 벗었 어. 생각에 대한

그냥 약간의 음식 : 만 정확한 일치가 왜 처음에 검색 한 후 반환하려면

  • ?

  • 사용자가과 정확히 일치 할 것으로 예상합니까? 나는 일반적으로 검색 엔진이 누락 된 단어를 수용 할 것이라고 가정하여 검색합니다.

  • 은 사용자가 색인에 더 이상이었다 국립 은행하지만 국립 은행 검색하지 가정하자. 계속 하시겠습니까 Abigail Adams National Bancorp, Inc은 정확히 일치하지 않았기 때문에 결과에서 제외됩니다.

이 비추어, 나는 당신이 사용자에게 모든 가능한 일치 (정확한 여부를) 제공하고 그들에 가장 적합한 스스로 결정할 수 있도록 지속적으로 건의 할 것입니다. 나는 당신이 모든 사용자들과 같은 생각을하지 않을 수도 있기 때문에 간단히 말합니다. Lucene은 가장 가까운 성냥이 결과에서 가장 높은 순위에 오르도록 보장하여 빠른 선택을하도록 도와줍니다.

1

이것은 지붕 널 필터의 사용을 보증 할 수 있습니다. 이 필터는 여러 단어를 함께 그룹화합니다. 예를 들어, ShingleFilter가 3 개인 토큰을 가진 Abigail Adams National Bancorp는 [Abigail], [Abigail Adams], [Abigail Adams National], [Adams National Bancorp], [Adams National], [Adams] , [National], [National Bancorp] 및 [Bancorp]가 있습니다.

사용자가 National Bancorp에 대한 쿼리를하면 National Bancorp 자체에 대한 정확한 일치 항목을 얻을 수 있고 Abigail Adams National Bancorp에 대한 더 낮은 점수 매치는 더 낮은 점수를 얻습니다. idf 낮춤). 이러한 쿼리를 통해 두 문서를 모두 반환하는 것이 좋습니다.

유스 케이스에 따라 쿼리 필터에서 적용 할 수도 있습니다.

1

나는 동일한 문제에 대한 도움없이 많이 봤어. 잠시 머리를 긁적 인 후 해결책을 찾았습니다. 큰 따옴표 안에 문자열을 검색하면 문제를 해결할 수 있습니다.

National Bancorp는 # 1과 # 2를 모두 반환하지만 "National Bancorp"는 # 2 만 반환합니다.