2

我正在使用 termfreq(field,term) SOLR 函数。这有效:

?fl=product_name,termfreq(product_name,"iphon")&q=iphone 4s     //Found freq

但问题是有像“iphone 4s”这样的词有空格

?fl=product_name,termfreq(product_name,"iphon 4s")&q=iphone 4s  //Return 0 freq

尽管文档中存在该术语(短语),但返回 0 频率。所以,问题是,我可以使用带有完整短语的 termfreq() 函数,如“iphone 4s”,如何?

我正在使用 SOLR 4.1。字段分析器是

<fieldType name="text_ws" class="solr.TextField">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

字段是

<field name="product_name" type="text_ws" indexed="true" stored="true"/>
4

1 回答 1

0

当您使用时,WhitespaceTokenizerFactory该术语iphone 4s不会作为术语存在。
您可以使用 KeywordTokenizerFactory 进行索引,它不会标记单词并且短语应该可用。
否则,您可以检查可以为您分组单词的 shingle 选项。

于 2013-03-19T14:21:12.797 回答