2014-07-19 4 views
1

SOLR로 작은 이진 문자열을 인덱싱해야하지만 그렇게하지 못했습니다. 사실 SHA-1, MD5 및 UUID 같은 것들과 같은 해시를 검색하려고합니다.SOLR의 작은 이진 필드에 대한 검색/인덱싱

색인이 생성되도록 이진 필드를 지정하십시오.

<field name="fi" type="binary" indexed="true" stored="true" required="false" multiValued="false" /> 

이진 유형 정의가 있습니다.

<fieldtype name="binary" class="solr.BinaryField"/> 

왜 어떤 아무것도 찾을 수없는 경우에도 fi:* 요청이 필드를 선택하려고? 내 접근 방식에 대한 대안이 있습니까?

+0

검색 문자열로 fi : [* TO *]를 시도해보고 대신 결과가 나오는지 확인하십시오. – MatsLindh

답변

1

데이터가 SHA1 등일 경우 StrField으로 완벽하게 작업 할 수 있다고 생각합니다. 물론 접두사 검색이 필요한 경우 solr.EdgeNGramTokenizerFactory를 사용하여 올바르게 분석해야합니다.

사용하는 바이너리 필드에 대해 필자는 직접 사용하지 않아도되지만 실제로는 base64로 인코딩하고 인코딩 한 다음 색인을 생성하므로 이진 데이터를 보낼 수 있습니다 (예 : .exe 파일).

+0

마지막으로 나는 StrField에게 솔직하게왔다. 실제로 UUIDField조차도 추가적인 오버 헤드가있는 내부 문자열 일뿐입니다. 그런 건축술에 수치스러워합니다. 언젠가 저는 이것을 향상시키기위한 노력에 동참 할 것입니다. –

관련 문제