使用Drupal 7.39和Solr 3.5(搜索Api模块)作为法语网站,关键字搜索工作正常,它会使用搜索的关键字返回所需的记录。
但是在使用多项同义词时,搜索不能正常工作。以下是synonyms_fr.txt文件的一些内容
负责任的资源Humaines,负责任的RH
顾问资源Humaines,顾问RH,Conseiller Ressources Humaines,Conseiller RH
DirecteurdudéveloppementRH,Directeur du developpement des Ressources Humaines,Directeur de lagestionprévisionnelledes 雇用和竞争对手
Directeur de programs,Directeur de projets Head of Retention, 保留经理
在搜索“Responsable RH”或“Responsable Resources Humaines”时,solr返回正确的数据。但是使用“DirecteurdudéveloppementRH”它返回说“X”数字或记录,但与它同义词价值“Directeur du developpement des Ressources Humaines”它返回0记录与“Directeur de lagestionprévisionnelledesemplois etdescompétences”它返回“ X-1“记录数量。
无法理解多学期synonmys无法正常工作的原因。
以下是法国网站的solr配置。
<fieldType name="text_fr" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory" words="stopwords_fr.txt" format="snowball" ignoreCase="true" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="1" catenateNumbers="1" catenateAll="0" protected="protwords.txt" preserveOriginal="1" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms_fr.txt" ignoreCase="true" expand="true" />
<filter class="solr.FrenchLightStemFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.StopFilterFactory" words="stopwords_fr.txt" format="snowball" ignoreCase="true" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" splitOnCaseChange="1" splitOnNumerics="1" catenateWords="0" catenateNumbers="0" catenateAll="0" protected="protwords.txt" preserveOriginal="1" />
<filter class="solr.FrenchLightStemFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
答案 0 :(得分:0)
多项同义词很复杂,并且效果不佳。 我正在使用 https://github.com/healthonnet/hon-lucene-synonyms 而且它运作良好。
但是,如果您向我们提供您要搜索的不同单词的分析结果,您可以先调查您的配置。 当你说&#34;责任RH&#34;你的意思是短语查询还是强调文本中的例子?