저는 Solr 5.5를 사용하고 있으며 해결책을 찾고 싶습니다.solr 싱글 쿼리가 일치하는 토큰 화 된 필드
<field name="exactName_noAlias_en_US" type="text_exact_query_tokenized" indexed="true" stored="false"/>
<fieldtype name="text_exact_query_tokenized" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="10"/>
</analyzer>
</fieldtype>
같은 값을 가질 수이 필드 : 다음 "저스틴 비버 (Justin Bieber)는"
그리고 내 기대대로 :
은 내가 아래 설정을 사용하여 만든 필드가
"예술가 Justin Bieber는 10 대들의 시선"이라는 질문에이 문서와 일치 시키길 원합니다. "Bieber Justin이라는 아티스트는 캐나다인입니다"또는 "저스틴 이름이 너무 일반적입니다"와 같은 검색어는 성냥을 찾기로되어 있지 않습니다.
정확히 일치하는 경우에도 "Justin Bieber"쿼리를 발행 할 때 기본 '/ select'요청 처리기를 사용하면 일치하는 항목을 찾을 수 없습니다. 그러나 다른 필드에 대한 기본 필드로 설정 한 '선택 /'RH, 그래서, 나는 아래 컬 사용하여 다른 RH를 만들려고 :
curl http://localhost/solr/performer/config -H 'Content-type:application/json' -d '{"add-requesthandler" : {"name": "/exactName","class":"solr.SearchHandler","defaults":{ "echoParams":"explicit" ,"rows":10, "df":"exactName_noAlias_en_US", "q.op":"AND" },"useParams":"x"}}'
그것은 RH 내가 원하는하지만 내 쿼리가 여전히 didn를 '을 만들었을 필요한 문서와 일치하지 않습니다.
이 문제에 대한 해결책을 알려주십시오. "& 중량 = JSON & 들여 쓰기 = 사실 & 디버그 = 사실 저스틴 % 20Bieber/exactName Q = exactName_noAlias_en_US :"
다음Here is a screenshot from the Analysis screen.
쿼리에 대한 응답의 '디버그'섹션의 코드 조각입니다"debug":{
"rawquerystring":"exactName_noAlias_en_US:Justin Bieber",
"querystring":"exactName_noAlias_en_US:Justin Bieber",
"parsedquery":"+exactName_noAlias_en_US:justin +exactName_noAlias_en_US:bieber",
"parsedquery_toString":"+exactName_noAlias_en_US:justin +exactName_noAlias_en_US:bieber",
"explain":{},
그리고 아래는 쿼리에 대한 응답의 '디버그'섹션의 코드 조각입니다 : "선택/Q = exactName_noAlias_en_US : 저스틴 % 20Bieber & 중량 = JSON & 들여 쓰기 = 사실 & 디버그 = true"로
"debug":{
"rawquerystring":"exactName_noAlias_en_US:Justin Bieber",
"querystring":"exactName_noAlias_en_US:Justin Bieber",
"parsedquery":"+exactName_noAlias_en_US:justin +searchKeywords_en_US:bieber",
"parsedquery_toString":"+exactName_noAlias_en_US:justin +searchKeywords_en_US:bieber",
"explain":{},
그리고 아래 선택 RH /와 구문 쿼리에 대한 응답의 '디버그'섹션의 코드 조각입니다 : "선택/Q = exactName_noAlias_en_US :"저스틴 % 20Bieber "& 중량 = JSON & 들여 쓰기 = "/ exactName Q = exactName_noAlias_en_US :?"저스틴 % 20Bieber "& 중량 사실 진정한 & 디버그 = 아래
"debug":{
"rawquerystring":"exactName_noAlias_en_US:\"Justin Bieber\"",
"querystring":"exactName_noAlias_en_US:\"Justin Bieber\"",
"parsedquery":"MultiPhraseQuery(exactName_noAlias_en_US:\"(justin justin bieber) bieber\")",
"parsedquery_toString":"exactName_noAlias_en_US:\"(justin justin bieber) bieber\"",
"explain":{},
그리고는/exactName RH와 구문 쿼리에 대한 응답의 '디버그'섹션의 조각입니다 = json & 들여 쓰기 = true & 디버그 = true 다음은
"debug":{
"rawquerystring":"exactName_noAlias_en_US:\"Justin Bieber\"",
"querystring":"exactName_noAlias_en_US:\"Justin Bieber\"",
"parsedquery":"MultiPhraseQuery(exactName_noAlias_en_US:\"(justin justin bieber) bieber\")",
"parsedquery_toString":"exactName_noAlias_en_US:\"(justin justin bieber) bieber\"",
"explain":{},
쿼리와 쿼리의 공백을 해당 디버그 섹션 탈출이다
는
select?q=Justin\ Beiber&df=exactName_noAlias_en_US
디버그 :
는"rawquerystring":"Justin\\ Beiber",
"querystring":"Justin\\ Beiber",
"parsedquery":"+((exactName_noAlias_en_US:justin exactName_noAlias_en_US:justin beiber)/no_coord) +exactName_noAlias_en_US:beiber",
"parsedquery_toString":"+(exactName_noAlias_en_US:justin exactName_noAlias_en_US:justin beiber) +exactName_noAlias_en_US:beiber",
"explain":{},
관리 페이지의 "분석"페이지에서 출력을 보았습니까? 이렇게하면 인덱싱 된 콘텐츠와 쿼리를 모두 입력하고 양쪽에서 생성되는 토큰 및 양쪽에서 동일한 토큰을 얻는 지 여부를 확인할 수 있습니다. 기본 필드를 제공하는 디버깅 또는 URL의 쿼리 필드는 일반적으로 요청 처리기를 변경하거나 추가하는 것보다 쉽습니다. – MatsLindh
네, 그랬습니다. 나는 그 도구에서 내가 원하는 것을 정확하게 본다. 그러나 내가 위에서 언급 한/select RH 또는 custom one '/ exactName'을 사용하여 http를 통해 쿼리를 발행 할 때 동일한 동작을 보지 못합니다. – oveflown
분석 단계의 결과를 포함시킬 수 있습니까? 또한 분석기의 색인 부분을 변경하면 해당 문서를 다시 색인해야합니다. – MatsLindh