Как сделать нечеткий поиск по нескольким словам в solr? - PullRequest
0 голосов
/ 15 февраля 2019

Чтобы объяснить мой сценарий, я создал скрипт на python, который я хочу воспроизвести в поиске solr. В скрипте я создал все перестановки полей и сформировал нечеткий поиск всего описания с перестановками

import json
from itertools import permutations
from fuzzywuzzy import fuzz
from fuzzywuzzy import process


def search(description):
    with open('test.json') as jsonString:
        testDataList = json.load(jsonString)
    fuzzyOutputs = []
    for item in testDataList:      
        maxratio = 0
        dataPermutations = list(permutations([item["field1"], item["field2"], item["field3"], item["field4"]]))
        for combination in dataPermutations:    
           ratio = fuzz.partial_ratio(description, combination)
           if ratio > maxratio:
               maxratio = ratio
        if maxratio > 80: 
            fuzzyOutputs.append({
                "data": item,
                "fuzzyRatio": maxratio
            })

    print(fuzzyOutputs)
    return json.dumps({
        "fuzzyOutputs": fuzzyOutputs
    })

print(search("QUICK FOX JUMP OVER"))

Как мне воспроизвести это в solr, есть ли предопределенный способ или я должен создать собственный фильтр для этого?

...