【发布时间】:2016-12-01 04:08:17
【问题描述】:
我是 Solr 初学者,我刚刚在我的项目中使用了 1 个月,从第一次开始,一切都很好,但我遇到了问题。如果我有这样一句话“当你爱一个人时,世界就在发光”。如果我使用“当你”或“正在发光”,则没有结果,但当我尝试使用“你爱”或“世界是”,或者只是“爱”或类似时,结果就会出现。想问一下schmal.xml文件怎么配置,还是我做错了什么,谢谢!
这里是 schema.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<schema name="minimal" version="1.1">
<field name="_version_" type="long" indexed="true" stored="false" />
<field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
<uniqueKey>id</uniqueKey>
<solrQueryParser defaultOperator="AND"/>
<field name="dplname" type="text_general" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="mail" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="phone" type="text_general" indexed="true" stored="true"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
<field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
<copyField source="dplname" dest="text"/>
<copyField source="mail" dest="text"/>
<copyField source="phone" dest="text"/>
<fieldType name="int" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
</schema>
更新:我使用这个查询来搜索:dplname:is shiny 或类似的。
【问题讨论】:
-
你搜索的怎么样了?如您的查询是什么?
-
嗨,我的查询是 dplname:*is shiny* 或类似的。
-
您是否有意进行通配符搜索?如果你只这样搜索会发生什么
dplname:shining -
它有效,但我想问一下我是按正在发光还是“正在发光”搜索,没有结果