【发布时间】:2015-06-10 11:06:22
【问题描述】:
我正在开发基于 Apache Solr 搜索引擎的 Rails 应用程序,我们正在使用 Sunspot gem。但是我面临一个问题,如果我搜索查询house rent,那么它会通过使用and query 给我数千个结果。但是我得到的结果并不相关。
我期待包含彼此靠近的房屋和租金字样的文件,这些文件应该排在最前面。但目前包含更多房屋和租金文件的文件排在首位。但是没有任何单词接近度。
我的 schema.xml 包含以下定义:
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s,\.;\(\)]+"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
要实现这一点,需要做哪些改变?还是需要为此添加任何过滤器?
【问题讨论】:
-
该字段使用的字段类型是什么?你能分享一下 Schema.xml 吗?
-
我使用了文本字段
-
添加“文本”字段的详细信息输入您的问题,回答您的问题会很好......
-
尝试在您的过滤器中使用这个 solr.ShingleFilterFactory 并在 solr 分析工具中进行分析...wiki.apache.org/solr/…
-
@AbhijitBashetti 这对我不起作用...请提出其他解决方案
标签: ruby-on-rails solr sunspot-solr solr-schema