2015-06-18 21 views
5

Tôi cố gắng để làm cho Solr trở lại trận đấu chính xác trên gợi ý, ví dụ:Solr đề nghị kết hợp chính xác

  • spellcheck.q = tota không trở tổng trong kết quả nhưng
  • spellcheck.q = tổng số không trả lại tổng số trong kết quả.

Tôi đang sử dụng lĩnh vực này cho các đề xuất:

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/> 
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
    </analyzer> 
</fieldType> 

Bất kỳ ý tưởng làm thế nào để làm cho Solr trả về chính xác phù hợp trên cho thấy ??

+0

là bộ phân tích được sử dụng để lập chỉ mục và quering là giống nhau không? –

+0

có cùng một máy phân tích. – user3687679

+0

thử thay thế "StandardTokenizerFactory" bằng "KeywordTokenizerFactory" –

Trả lời

0

bạn có thể thử với điều này

<fieldType name="textSpellShingle" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="front"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="50" side="back"/> 
    </analyzer> 
</fieldType> 
+0

không đưa ra đề xuất nào cả! – user3687679

+0

và lần thử cuối cùng của tôi là ở đây :) –

+0

cảm ơn bạn :). nhưng cũng không hoạt động. – user3687679

0

Như mentionned trong trang wiki này: https://cwiki.apache.org/confluence/display/solr/Suggester

To be used as the basis for a suggestion, the field must be stored.

Hãy chắc chắn rằng lĩnh vực của bạn được lưu trữ. Trường của bạn không được lưu trữ để nó trả về dữ liệu được lập chỉ mục của bạn.

+0

trường của tôi được lưu trữ. – user3687679

+0

Bạn nên cố gắng mở chỉ mục của mình bằng Luke (https://code.google.com/p/luke/). Nhìn vào trường được lưu trữ và đảm bảo nó xuất hiện chính xác. Hãy cho tôi biết nó trông như thế nào. –

1

Bạn đang sử dụng thành phần Kiểm tra chính tả, như tên được chỉ ra, có nghĩa là để kiểm tra chính tả. Nó trả về các đề xuất cho cách nhập nên được viết. Khi từ được viết đúng chính tả (bằng một kết hợp chính xác), từ đó không trả về gì cả, đó là lý do bạn không thấy từ đó trong danh sách.

Vì Solr 4.7 một thành phần Đề xuất mới đã được thêm vào, thực tế được triển khai cho tự động đề xuất và mang lại kết quả bạn mong đợi.

-1

Vấn đề của bạn là do bạn đã sử dụng thành phần đề xuất cũ dựa trên thành phần kiểm tra chính tả (Tôi cho rằng bạn đã sử dụng phiên bản của solr trước 5).

Với kiểm tra chính tả cũ/đề xuất, nếu từ khớp với nó không trả về trong phản hồi!

Kiểm tra với solr.suggestComponent (nếu có trong phiên bản của bạn).

xem: https://cwiki.apache.org/confluence/display/solr/Suggester

+0

đừng quên thay đổi bạn spellcheck.q theo gợi ý.q trong yêu cầu của bạn nếu bạn đã sử dụng đề xuất mới – Nono

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