Tôi đang sử dụng SOLR 3.2. Ứng dụng của tôi đưa ra các truy vấn tìm kiếm trên cá thể SOLR, cho một kiểu trường văn bản. Làm thế nào tôi có thể làm cho SOLR trả về các kết quả như "book", "bookshelf", "bookasd" như vậy, khi người dùng đưa ra một truy vấn như "book". Tôi có nên thêm các ký tự "*" vào chuỗi truy vấn theo cách thủ công hay có cài đặt trong SOLR để nó sẽ thực hiện tìm kiếm tiền tố trên trường theo mặc định?Cách định cấu hình SOLR để người dùng có thể thực hiện tìm kiếm tiền tố theo mặc định?
Đây là phần schema.xml cho loại hình trường văn bản:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenat0All="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>
Bạn đã tìm thấy câu trả lời chưa? –