SOLR - как сделать нечеткий поиск по логическим значениям - PullRequest
2 голосов
/ 14 июля 2010

Если мой индекс содержит три логических поля: a, b и c ...
Я хотел бы найти: "a = True, b = False, c = True", и SOLR должен вернуть все записи, иих оценка должна отражать соответствие всего запроса.

например,

a=T, b=F, c=T, score=1.0  
a=T, b=T, c=T, score=0.6  
a=T, b=T, c=F, score=0.5  

возможно ли это?

1 Ответ

3 голосов
/ 15 июля 2010

Предполагается, что true = 1, false = 0, пара идей:

  • Создание каждой комбинации с соответствующим усилением в клиенте, например:

    (a:1 AND b:0 AND c:1) OR (a:1 OR b:1 OR c:1)^0.6 OR...
    
  • Используйте запрос функции dist , например: dist(1, a,b,c, 1,0,1) (требуется Solr 1.5+) (я не использовал это, возможно, вам придется умножить это-1)

...