2012-01-31 18 views
8

Tôi đang sử dụng solr, được thiết lập tại localhost: 8983 Tôi về cơ bản đang sử dụng ví dụ về hộp. Tôi đã nhập một tài liệu có tên "Xe hơi" và một tài liệu khác có tên "Ô tô".Định cấu hình SOLR để tìm tài liệu nếu số nhiều được sử dụng trong tài liệu và số ít trong văn bản tìm kiếm?

Nếu tôi ghé thăm một trong hai:

http://localhost:8983/solr/select?q=Car 

hoặc

http://localhost:8983/solr/select?q=Cars 

tôi mong chờ để có được cả hai tài liệu. Tại thời điểm này, tôi không.

Trong thẻ lĩnh vực "schema.xml", mục "tên" là:

"text_general" có "phân tích" sau đây (không có stemmers):

<analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
<analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 

Tôi đã cố thêm một thân cây vào mỗi máy phân tích. Tôi đã thử:

<filter class="solr.PorterStemFilterFactory"/> 
<filter class="solr.KStemFilterFactory"/> 
<filter class="solr.EnglishMinimalStemFilterFactory"/> 

Làm như vậy tìm kiếm "Ô tô" sẽ tìm thấy "Ô tô", nhưng tôi không bao giờ tìm thấy "Ô tô".

Có thể tìm thấy "Ô tô" không?

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn bạn.

Trả lời

16

Có thể, chỉ cần thêm bộ lọc porter ở phần cuối (sau khi LowerCaseFilterFactory):

<filter class="solr.SnowballPorterFilterFactory" language="English" /> 

Read more:

  1. Snowball docs with example of use in analyser
  2. Solr LanguageAnalysis
  3. The English (Porter2) stemming algorithm

Nếu không có nhu cầu đặc biệt, tôi sẽ không chia phân tích thành chỉ số và thời gian truy vấn. Trình phân tích thời gian truy vấn của bạn trông hoàn toàn tốt để sử dụng nó trong cả hai trường hợp.

+0

Này, điều đó dường như làm việc. Và bây giờ, do đó, làm các stemmers tôi đã cố gắng ngày hôm qua. Tôi đã khởi động lại ứng dụng solr (chạy trên tomcat), và nó dường như có một số hiệu ứng (tức là tôi không bao giờ có thể tìm thấy "Cars", cho dù tôi đã làm gì), nhưng tôi đoán có gì đó đã được lưu trữ. Tôi sẽ đưa ra lời khuyên của bạn về việc phân chia máy phân tích. Cảm ơn. – zod

+0

@Fuxi Liên kết đầu tiên của bạn đã chết và cũng là lần thứ ba – AntonioCS

+0

@AntonioCS tôi đã cập nhật liên kết đầu tiên, thứ hai và thứ hoạt động cho tôi – Fuxi

1

tôi thấy rằng việc thay đổi từ text_general để text_en trong các lĩnh vực shema.xml đã chăm sóc của vấn đề đa này

+1

Bạn đang giới thiệu thế nào để schemplary schema trong Solr? Trong các phiên bản tôi đã kiểm tra nó cũng sử dụng nguồn gốc, PorterStemFilterFactory chính xác – Fuxi

Các vấn đề liên quan