2011-01-17 6 views
2

Apache Solr을 사용하여 웹 사이트의 검색 엔진을 구현할 계획입니다. 내가 검색 인덱스가 내장되어, 그 문서 중 하나입니다 : 예상대로 버추어 *웹 사이트 검색 엔진에 대한 Lucene 쿼리 작성 방법

반환 "버추어"로 시작하는 모든 레코드를, :의 검색을 수행

버추어 파이터 2

.

"Virtua Fighter 2"를 검색하면 정확한 일치가 반환됩니다.

"Virtua Fighter"검색 결과에서 Virtua Fighter 2를 반환하고 싶습니다. 그러나 Virtua Fighter의 구문 검색은 결과 세트에서 Virtua Fighter 2를 생략합니다. 그리고 구문 검색에서 와일드 카드를 사용할 수 없습니다. "Virtua Fighter *"는 결과를 반환하지 않습니다.

이것을 지원하려면 어떤 유형의 쿼리를 작성해야합니까? 또는 간단한 웹 사이트 검색 엔진에 사용되는 Lucene 쿼리 유형은 무엇입니까?

+0

검색에 사용하는 복사 필드를 고려하십시오. 새로운 필드 유형을 만들고 적절한 TokenizerFactories [http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#TokenizerFactories]를 사용해야 만합니다. 그러나 적절한 답변을 드릴만큼 정통하지는 않습니다. –

답변

3

제목에 키워드 분석기를 사용하고 계신 것 같습니까? (또는 토큰으로 분리되지 않는 다른 분석기)

표준 분석기를 사용해야 만 구문 검색 쿼리가 올바르게 작동합니다.

+0

그게 전부 였어. 제목에 "문자열"필드 유형을 사용했는데 키워드 분석기를 기본값으로 사용해야합니다. 필자는 Solr이 정의한 "텍스트"라는 필드 유형을 사용하여 적절한 분석기를 사용하도록 변경했습니다. – Simian