Solr 7查询具有多个带空格的术语的同义词
我知道这个问题被问了好几次,但直到现在我才明白 所以,我想搜索“ms sql”,但不仅仅是“ms”或“sql”。当我使用quotationmarks时,分数比不使用quotationmarks时高得多 我尝试使用ShingleFilterFactory来获得综合结果。但它不起作用。在我的查询中,不能使用同义词,只能使用我输入的单词。结果总是0 我还看到了一些精确映射的解决方案,如:Solr 7查询具有多个带空格的术语的同义词,solr,whitespace,synonym,search-multiple-words,Solr,Whitespace,Synonym,Search Multiple Words,我知道这个问题被问了好几次,但直到现在我才明白 所以,我想搜索“ms sql”,但不仅仅是“ms”或“sql”。当我使用quotationmarks时,分数比不使用quotationmarks时高得多 我尝试使用ShingleFilterFactory来获得综合结果。但它不起作用。在我的查询中,不能使用同义词,只能使用我输入的单词。结果总是0 我还看到了一些精确映射的解决方案,如: MS SQL, Microsoft SQL, MSSQL => MSSQL 删除空白。但我需要在结尾精确
MS SQL, Microsoft SQL, MSSQL => MSSQL
删除空白。但我需要在结尾精确匹配的单词,所以我不能在索引时这样做
My schema.xml看起来像:
[...]
<field name="Beschreibung" type="text" stored="true" indexed="true"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
[...]
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="1" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1" types="types.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query" >
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="false"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt" tokenizerFactory="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="0" catenateWords="1" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1" types="types.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
当我在schema.xml中更改某些内容时,我总是重新启动Solr
如果你需要更多的细节,请告诉我
我希望您能帮助我。因此,无论何时搜索“ms sql”,您都希望得到包含“ms sql”或“MSSQL”或“ms sql”或“Microsoft sql”的文档,而不是任何包含“ms”或“sql”的文档。对吗?对,对。
MSSQL, MS SQL, Microsoft SQL