solr 와일드 카드 검색 및 중지 단어에 문제가 있습니다. stopwords.txt에 "", "for", "is"라는 단어를 거의 추가하지 않았습니다. 와일드 카드 검색을하지 않을 때 완벽하게 작동합니다.
쿼리 ->q=learningObjectTopic:to&rows=1
와일드 카드 검색에서 solr 스톱 어가 작동하지 않습니다.
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">3</int>
<lst name="params">
<str name="q">learningObjectTopic:to</str>
<str name="rows">1</str>
</lst>
</lst>
<result name="response" numFound="0" start="0"/>
</response>
내가 와일드 카드는 반환 데이터를 검색 할 때.
쿼리 - 이것은 내가 뭘 필요로 내 분석기
<fieldType name="text_general" class="solr.TextField" multiValued="false" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
입니다>q=learningObjectTopic:*to*&rows=1
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5</int>
<lst name="params">
<str name="q">learningObjectTopic:*to*</str>
<str name="rows">1</str>
</lst>
</lst>
<result name="response" numFound="75" start="0">
<doc>
<str name="id">56f4bc54b2de79277297dcab</str>
<str name="learningObjectId">LO1_SK1_18</str>
<str name="learningObjectTopic">Introduction to Web Development</str>
<str name="category">learningObject</str>
<long name="_version_">1537824533459763200</long>
</doc>
</result>
</response>
역시 와일드 카드 쿼리에 일치하지한다 "방법"을 참조하십시오. 내가 여기서 무엇을 놓치고 있니?
참고 : learningObjectTopic : 스톱 워드에서 "to"를 추가했을 때 결과에서 스킵 된 "to"단어를 검색하여 스톱 워드 색인 생성이 작동합니다.
검색하는 입력란에 schema.xml에 "true"가 저장되어 있습니까? 이렇게하면 solr이 원래 문자열을 저장하고 반환합니다. 쿼리 분석기를 통해 중지 단어 처리 방법을 확인해야합니다. –
@EricN 내 필드 정의 ' ' –
분석기 정의를 변경 한 후 다시 색인을 생성 했습니까? – femtoRgon