2010-11-29 2 views
1

안녕하세요 저는 PHP 및 Zend Framework로 작성된 응용 프로그램에서 검색을 수행 할 방법을 찾고 있습니다. 해결하려는 문제는 "Windows 95"및 다른 "Windows95"를 다른 사람들은 "Win 95"또는 "Win95"라고 쓰는 것입니다. Zend_Search_Lucene 모듈이 있지만 올바른 방법인지 모릅니다.PHP와 Zend Framework를 통한 전문 검색 - Lucene?

아이디어가 있으십니까? 그것은 PHP로 작성되어야하며 중앙 집중식 스토리지가 극도로 훌륭하게 확장되어야합니다.

답변

0

글쎄, 그들은 Text Analyzers을 그것을 이름의 전체 텍스트 검색 을 구현 살펴 :

기본적으로 Doctrine은 Doctrine_Search_Analyzer_Standard를 사용하여 텍스트를 분석합니다. 이 클래스 는 다음과 같은 것들을 수행

정지 - 키워드 밖으로 스트립, '경우'등 는이 같은 '와'일반적으로 사용되는 단어로서 많은 (예 : 같은 '과'등 '만약') 검색에 대한 관련성이 없기 때문에 은 인덱스 크기를 알맞게 유지하기 위해 으로 제거됩니다. 모든 키워드를 소문자로 처리합니다 ( ). 'database'와 'DataBase'를 검색하는 표준 장비는 표준 분석기이므로 동등한 것으로 간주되므로 표준 분석기는 모든 키워드를 소문자로 처리합니다. 이 아닌 모든 영숫자 표시를 공백으로 바꿉니다. 일반 텍스트에서 많은 키워드는 예 'database.'에 대해 영숫자 문자 뒤에 포함될 수 있습니다. 표준 분석기가이를 제거하여 'database'가 'database'와 일치합니다. 는 빈 문자열을 가진 모든 인용 부호를 대체 그래서 "오코너" 일치 "oconnor"

소스 http://www.doctrine-project.org/projects/orm/1.2/docs/manual/searching/en#introduction

당신이 루씬을 전달하기 전에 당신의 색인을 만들기 전에 쿼리를 준비 할 수있는 것 같아요

0

젠드 프레임 워크의 모듈 인 Zend_Search_Lucene은 PHP로 작성되었지만, 필자가 알고있는 한 귀하의 검색어는 수정되지 않습니다. Java로 작성된 Apache Lucene에는 이러한 맞춤법 검사 기능이 있습니다. "Did you mean?" feature in Lucene.net을 참조하십시오. 내가 곧 길이의 교리를 사랑

내 대답

때문에 나의 관점에서 Zend_Lucene와는 아무 상관

+3

'내가 완전히 착각하지는 않았다면, Zend_Search_Lucene은 Lucene의 완전한 PHP 구현물이다. 아마도 Java Apache 구현의 * 번역 *이지만 Apache Lucene에 전혀 의존하지 않으며 Java 코드를 호출하지도 않습니다. – deceze

+0

@deceze : 네 말이 맞아. 나는 내 대답을 편집했다. – rik