Search Solr在不同场景的顶部列出部分匹配项

Search Solr在不同场景的顶部列出部分匹配项,search,solr,full-text-search,search-engine,Search,Solr,Full Text Search,Search Engine,我已使用搜索文本“安泰航空”对字段公司进行了搜索(**这是ngram-d,因为我需要获取部分匹配的结果)。**。我可以把精确匹配和部分匹配放在最上面。 我需要处理一个场景,例如: 示例:根据以下结果,我需要在“信诺健康计划-METH”的顶部添加“安泰更好的HLTH PAHMO”和“安泰更好的健康MAHMO”。 在这里,即使这些结果也没有“安泰”,而是“安泰”。我需要显示从这个开始的结果,下面是精确匹配和类似匹配 "docs": [ { "company": "AETNAHMOGN

我已使用搜索文本“安泰航空”对字段公司进行了搜索(**这是ngram-d,因为我需要获取部分匹配的结果)。**。我可以把精确匹配和部分匹配放在最上面。 我需要处理一个场景,例如: 示例:根据以下结果,我需要在“信诺健康计划-METH”的顶部添加“安泰更好的HLTH PAHMO”和“安泰更好的健康MAHMO”。 在这里,即使这些结果也没有“安泰”,而是“安泰”。我需要显示从这个开始的结果,下面是精确匹配和类似匹配

  "docs": [
  {
    "company": "AETNAHMOGNPIPA",
    "score": 0.32741508
  },
  {
    "company": "AETNAHMOPOSOUT OF NETWORK",
    "score": 0.32741508
  },
  {
    "company": "CIGNAHMO HEALTHPLAN - METH",
    "score": 0.14788051
  },
  {
    "company": "CIGNAHMOPOSOZ08",
    "score": 0.14500062
  },
  {
    "company": "CIGNAHMOPOSGNPIPA",
    "score": 0.14500062
  },
  {
    "company": "HUMANAHMO MCD",
    "score": 0.14500062
  },
  {
    "company": "AETNA BETTER HLTH PAHMO",
    "score": 0.1069743
  },
  {
    "company": "AETNA BETTER HEALTH MAHMO",
    "score": 0.1069743
  },
  {
    "company": "MOLINA HLTHCARE IL PAHMO",
    "score": 0.067287326
  },
  {
    "company": "BCBSMAHMO OUTPT",
    "score": 0.065203
  }
  ]

有没有办法做到这一点。请帮助

短语增强在这里有效

您需要使用
edismax
查询解析器以及
pf
字段

以下附加到查询中的参数应起作用:
&defType=edismax&pf=company

我已经在Solr-5.4.1上用上面发布的数据集对此进行了测试,结果如下:

查询:
http://localhost:8983/solr/Test/select?q=company%3Aaetnamho&wt=json&indent=true&defType=edismax&pf=company&stopwords=true&lowercaseOperators=true&omitHeader=true

答复:

{
"response":{"numFound":9,"start":0,"docs":[
  {
    "company":"AETNAHMOPOSOUT OF NETWORK",
    "id":2,
    "_version_":1530885533005250560},
  {
    "company":"AETNA BETTER HEALTH MAHMO",
    "id":8,
    "_version_":1530885600368918528},
  {
    "company":"AETNA BETTER HLTH PAHMO",
    "id":7,
    "_version_":1530885592734236672},
  {
    "company":"AETNAHMOGNPIPA",
    "id":1,
    "_version_":1530885512290631680},
  {
    "company":"CIGNAHMO HEALTHPLAN - METH",
    "id":3,
    "_version_":1530885543046414336},
  {
    "company":"MOLINA HLTHCARE IL PAHMO",
    "id":9,
    "_version_":1530885608894889984},
  {
    "company":"CIGNAHMOPOSGNPIPA",
    "id":5,
    "_version_":1530885565434560512},
  {
    "company":"CIGNAHMOPOSOZ08",
    "id":4,
    "_version_":1530885555631423488},
  {
    "company":"HUMANAHMO MCD",
    "id":6,
    "_version_":1530885585061806080}]
}}

你的明格拉姆尺码是多少?如果您可以发布字段定义IDIDWhat query parser,这将非常有用:谢谢。但这对我来说是行不通的。你能为字段和字段类型发布模式吗。我使用的是我最初发布的字段和文件类型。我也使用了相同的字段和文件类型。你看到了什么样的结果?另外,我刚刚尝试了一家现场公司。如果您也在根据其他字段搜索和/或评分,那么您看到的结果将有所不同。在这种情况下,你将不得不通过提高pf来达到适合你的正确价值。除了公司,我也得到了分数。。另外,我正在搜索大约60000个文档。这是我现在所能看到的唯一不同。。我会检查更多,并让你知道更新soonSorry,这个短语查询不适合我,我只是按照你说的查询。我也尝试过使用新创建的core来处理相同的数据集。但我还是达不到要求。我找不到任何差异,我按照最初发布的顺序列出数据。我不知道我错在哪里