2012-02-25 1 views
2

나는 문제가있어 구글이별로 도움이되지 못했다. ColdFusion (9)에서 Solr 색인을 검색하는 동안 HTML을 무시하는 방법을 알아 내려고합니다.CFSearch + Solr : 검색에서 HTML 무시하기

예를 들어 microsoft을 검색하고 색인에 Microsoft© makes Windows®이 포함되어 있으면 실제 결과를 표시하는 대신 "Microsoft © Windows®"를 검색하라는 메시지가 표시됩니다.

아래에서 볼 수 있듯이 문자열을 cfsearch의 criteria 속성에 전달하는 것뿐입니다.하지만이 작업을 수행하면 (내가 생각할 때) "더티 (dirty)"결과가 생성됩니다.

<cfsearch 
     collection="mycollection" 
     criteria="microsoft" 
     name="results" 
     maxrows="100" 
     suggestions="always" 
     contexthighlightbegin="<strong>" 
     contextHighlightEnd="</strong>" 
     contextPassages="3" 
     /> 

나는 Solr's query syntax에 대한 설명서에서 찾고 있었어요하지만 난이 문제를 방지하는 방법에 나를 밖으로 점프 아무것도 표시되지 않습니다.

색인을 "평면"버전의 텍스트로 제공해야합니까, 아니면 &copy;/&reg;/&trade;과 같은 HTML 문자열을 피할 수있는 방법이 있습니까?

제안 사항이 있습니다.

- 브라이언.

+0

http://www.corporatezen.com/2013/11/updating-solr-engine-coldfusion/에 따라 Solr 3.4를 사용해야하는 CF10을 사용하고 있습니다. 나는 '에''를 추가했지만 검색 결과는 여전히 HTML을 반환합니다. 왜 그런가? – Henry

답변

1

:이 질문에 대한

이 솔루션은 오히려 인덱스 내에서 HTML를 해결하는 것보다 인덱스의 대체 방법을 사용하는 것이 었습니다. 데이터베이스 내에서

내가 index_search라는 새로운 분야를 만들어 내 응용 프로그램 내에서 내 삽입 방법에 내가 어떤 특별한 (어) 문자를 생략 할 정규식을 사용 : 거기에서 "[^[:word:].[:space:]-]"

을, 나는에 index_search 필드를 통과 HTML 싸서 가까운 단어 또는 구문을 검색하거나,이 방법은 예상되는 출력을 생성하여

<cfindex 
    collection="mycollection" 
    action="update" 
    body="name_search,html_description" 
    title="name_html" 
    key="UUID" 
    query="data"> 

: cfindex의 본문 및 제목과 같은 HTML 이름을 사용했다. IE : microsoft을 검색하면 Microsoft©과 함께 모든 결과가 나열됩니다.

3

검색에 사용하는 솔라 필드가 String 필드 유형이 아니라 텍스트 (토큰 화 및 기타 텍스트 분석이 허용됨)로 설정되어 있는지 확인하십시오. 이에 대한 자세한 내용은 this question을 참조하십시오.

HTML을 제거하는 것이 실제로 문제가되는 경우 색인을 생성 한 필드에서 HTML 태그를 제거하는 필드 유형 구성에 HTMLStripCharFilterFactory을 추가해야합니다. 같은 질문에 직면하게 될 수있는 사람들을위한

+0

감사합니다. Mauricio. 게시 한 내용에서 ColdFusion + Solr을 사용하여 (비교적) 쉬운 방법이없는 것처럼 보이므로 색인을 생성하기 전에 HTML을 제거하려고합니다. – NotJustClarkKent

+0

HTMLStripCharFilterFactory 또는 다른 charFilter와 관련된 유일한 문제는 이것이 Solr 1.4에서 소개되었으며 CF 9는 기본적으로 Solr 1.3을 실행한다는 것입니다. CF 9.0.1도 1.4 이전 Solr 릴리스를 실행하는 것으로 보입니다. 이는 확실히 업그레이드 할 수 없기 때문에 업그레이드 할 수 없다는 말은 아닙니다. 단지 CF 9에서 실행되는 것만은 아닙니다. –

+0

@DavidFaber : 와우, 솔라 1.3은 이제 ~ 3.5 세입니다.그것은 Solr 년 동안 많은 *입니다 :) –