Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 7查询具有多个带空格的术语的同义词_Solr_Whitespace_Synonym_Search Multiple Words - Fatal编程技术网

Solr 7查询具有多个带空格的术语的同义词

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”,但不仅仅是“ms”或“sql”。当我使用quotationmarks时,分数比不使用quotationmarks时高得多

我尝试使用ShingleFilterFactory来获得综合结果。但它不起作用。在我的查询中,不能使用同义词,只能使用我输入的单词。结果总是0

我还看到了一些精确映射的解决方案,如:

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