Я загрузил следующий документ json в solr 8.3.1. Я использую pysolr для запроса.
my_json2 = {"fileName": "test2", "my_content2": {"my_text1":"This a test with bank BoA bank and banking Chase banking.", "my_text2": "My name is Robert"}}
os.environ['SOLR_URL']="http://localhost:8983/solr"
solr_url = os.environ.get('SOLR_URL')
solr_collection = 'Banking'
Я пишу запрос, используя следующие функции -
def solr_search(q, **kwargs):
results = solr.search(q, **kwargs)
return results
sampleText = solr_search("{}".format(keyWord), **{
"defType": "edismax",
"debug": "true",
"qf": "my_content2",
"rows":10,
"fl": "fileName"})
Я запрашиваю ключевое слово «банк». Но я получаю в результате 0 документов.
Как я могу запросить указанное поле c в solr, если запрашиваемое поле является словарем?
Я добавил следующий код в мою управляемую схему. xml -
<fieldType name="text_ngrm" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" maxGramSize="50" minGramSize="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="my_content2" type="text_general" multiValued="false" indexed="true" stored="true"/>
<field name="my_content2.my_text1" type="text_ngrm" indexed="true" stored="true"/>
<field name="my_content2.my_text2" type="text_ngrm" indexed="true" stored="true"/>