Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Autocomplete 使用NGrams在solr中搜索Suggester(自动完成)(Suggester组件的一个排序规则)_Autocomplete_Solr_Collation_Autosuggest - Fatal编程技术网

Autocomplete 使用NGrams在solr中搜索Suggester(自动完成)(Suggester组件的一个排序规则)

Autocomplete 使用NGrams在solr中搜索Suggester(自动完成)(Suggester组件的一个排序规则),autocomplete,solr,collation,autosuggest,Autocomplete,Solr,Collation,Autosuggest,我正在使用EdgeNGrams与solr一起进行自动完成搜索。我使用solr 3.3,我想使用suggester的排序规则作为多术语搜索的自动完成解决方案。不幸的是,对于多术语搜索,建议者只返回一个排序规则 如果用户正在搜索员工姓名,则应应用自动完成。也就是说,想要谷歌搜索这样的结果。这对我来说很好 schema.xml 网址:$http://local:8080/test/suggest/?q=michael Result : <?xml version="1.0

我正在使用EdgeNGrams与solr一起进行自动完成搜索。我使用solr 3.3,我想使用suggester的排序规则作为多术语搜索的自动完成解决方案。不幸的是,对于多术语搜索,建议者只返回一个排序规则

如果用户正在搜索员工姓名,则应应用自动完成。也就是说,想要谷歌搜索这样的结果。这对我来说很好

schema.xml



网址:$http://local:8080/test/suggest/?q=michael

   Result :
   <?xml version="1.0" encoding="UTF-8" ?> 
<response>
<lst name="responseHeader">
<int name="status">0</int> 
<int name="QTime">1</int> 
</lst>
<result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str>
  <str>michael w. smith featuring andrae crouch</str> 
</arr>
</lst>
<str name="collation">michael bolton</str> 
</lst>
</lst>
</response>
结果:
0
1.
9
0
7.
迈克尔·博尔顿
迈克尔·弗雷特
迈克尔·福斯
迈克尔w。史密斯扮演安德雷·克劳奇
迈克尔·博尔顿
这对我来说很好。当我搜索“michael f”时,得到如下响应。(http://local:8080/test/suggest/?q=michael (f)

答复:

 <?xml version="1.0" encoding="UTF-8" ?> 
 <response>
 <lst name="responseHeader">
 <int name="status">0</int> 
 <int name="QTime">1</int> 
 </lst>
 <result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str> 
  <str>michael w. smith featuring andrae crouch</str> 
   .....
</arr>
</lst>
<lst name="f">
<int name="numFound">10</int> 
<int name="startOffset">8</int> 
<int name="endOffset">9</int> 
<arr name="suggestion">
  <str>f**k the facts</str> 
  <str>fairest lord jesus</str> 
  <str>franz ferdinand</str> 
  <str>françois rauber</str> 
  .........
</arr>
</lst>
<str name="collation">michael bolton f**k the facts</str> 
</lst>
</lst>
</response>.

0
1.
9
0
7.
迈克尔·博尔顿
迈克尔·弗雷特
迈克尔·福斯
迈克尔w。史密斯扮演安德雷·克劳奇
.....
10
8.
9
否认事实
最美丽的主耶稣
费迪南德
弗朗索瓦·劳伯
.........
迈克尔·博尔顿承认事实
.
所以当我用“迈克尔f”搜索时,我应该只得到“迈克尔·弗雷特”和“迈克尔·福斯”。数据以“f”开头。如果我在solr中的配置设置有任何错误,请建议我

提前感谢,


Anil.

能否在
solrconfig.xml
中发布Suggester组件的配置。通常,人们会在建议者和制作NGrams之间做出选择。您为Suggester配置了什么字段类型?suggest org.apache.solr.spelling.Suggester org.apache.solr.spelling.suggest.fst.FSTLookup suggest autocomplete_text true 100 true suggest false 10 true suggest仍然没有解决我的问题…最终使用TermsComponent解决了自动完成功能。检查此链接。
   Result :
   <?xml version="1.0" encoding="UTF-8" ?> 
<response>
<lst name="responseHeader">
<int name="status">0</int> 
<int name="QTime">1</int> 
</lst>
<result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str>
  <str>michael w. smith featuring andrae crouch</str> 
</arr>
</lst>
<str name="collation">michael bolton</str> 
</lst>
</lst>
</response>
 <?xml version="1.0" encoding="UTF-8" ?> 
 <response>
 <lst name="responseHeader">
 <int name="status">0</int> 
 <int name="QTime">1</int> 
 </lst>
 <result name="response" numFound="0" start="0" /> 
<lst name="spellcheck">
<lst name="suggestions">
<lst name="michael">
<int name="numFound">9</int> 
<int name="startOffset">0</int> 
<int name="endOffset">7</int> 
<arr name="suggestion">
  <str>michael bolton</str> 
  <str>michael foret</str> 
  <str>michael force</str> 
  <str>michael w. smith featuring andrae crouch</str> 
   .....
</arr>
</lst>
<lst name="f">
<int name="numFound">10</int> 
<int name="startOffset">8</int> 
<int name="endOffset">9</int> 
<arr name="suggestion">
  <str>f**k the facts</str> 
  <str>fairest lord jesus</str> 
  <str>franz ferdinand</str> 
  <str>françois rauber</str> 
  .........
</arr>
</lst>
<str name="collation">michael bolton f**k the facts</str> 
</lst>
</lst>
</response>.