Повысить результаты на основе значения поля - PullRequest
1 голос
/ 22 апреля 2019

Я новичок в Solr и пытаюсь получить результаты из него. Мне нужны результаты, которые точно соответствуют моей фразе, например: «test test1 test2» и любому документу, в котором есть любое из этих ключевых слов, так что это своего рода объединение точного и частичного совпадений.

Я в значительной степени достигаю этого с помощью dismax. Теперь я хочу, чтобы результаты сортировались / улучшались на основе некоторого значения поля, например: cat: A, затем cat: B, затем cat: C. Также я хочу, чтобы эта сортировка применялась сначала к точно сопоставленному результату, а затем к частично сопоставленным результатам.

Индексированные данные:

[
  {
    "id": "001",
    "name": "test test1 test2 Z",
    "price": 12.9,
    "cat": "A"
  },
  {
    "id": "002",
    "name": "test test1 test2 X",
    "price": 91.5,
    "cat": "B"
  },
  {
    "id": "003",
    "name": "test test1 test2 R",
    "price": 45.5,
    "cat": "C"
  },
  {
    "id": "004",
    "name": "test test1 test2 C",
    "price": 78.67,
    "cat": "B"
  },
  {
    "id": "005",
    "name": "data",
    "price": 91.5,
    "cat": "A"
  },
  {
    "id": "008",
    "name": "test test1 test2 D",
    "price": 45.09,
    "cat": "A"
  },
  {
    "id": "009",
    "name": "test test1 test2 B",
    "price": 34.09,
    "cat": "B"
  },
  {
    "id": "010",
    "name": "test test1 test2 A",
    "price": 39.19,
    "cat": "C"
  },
  {
    "id": "011",
    "name": "test this data",
    "price": 89.19,
    "cat": "A"
  },
  {
    "id": "012",
    "name": "this is my data",
    "price": 89.19,
    "cat": "C"
  },
  {
    "id": "013",
    "name": "test1 is this data title",
    "price": 89.19,
    "cat": "A"
  }
]

Пожалуйста, помогите. Спасибо заранее.

...