Поведение при поиске Coldfusion (Solr)

У меня есть этот шаблон "индексатора":

<cfquery name="LOCAL.modelli" datasource="xxx">
    SELECT id, name, brand FROM products 
</cfquery>
<cfindex action="refresh" 
         collection="mycoll"
         key="id"
         type="custom"
         title="nome"
         query="LOCAL.modelli"
         body="nome" />

И я использую этот код для поиска (#t# исходит из поля формы поиска):

<cfsearch collection="mycoll" name="LOCAL.ricerca" criteria="#t#" status="LOCAL.searchStatus" suggestions="always" />

Представьте, что у меня есть эта таблица «продукты» в БД:

ID | Имя |

1 | ФРАГ 13 |

2 | ФООБАР |

3 | ЛЯГУШКА |

Поиск по слову «лягушка» НЕ НАХОДИТ «Frogskin»!

Вместо этого он предлагает «фраг».

Это нормальное поведение? Можете ли вы объяснить это мне?

Как я могу заставить свою поисковую систему находить «лягушачью кожу» по критерию «лягушка»? (Я хотел бы избежать выполнения SQL-запроса к «продуктам» для улучшения результатов).

Спасибо.


person Fabio B.    schedule 13.03.2013    source источник
comment
где вы используете Solr здесь?   -  person Srikanth Venugopalan    schedule 14.03.2013


Ответы (1)


Без использования подстановочного знака движок будет искать точное слово «лягушка».

Вам нужно использовать подстановочный знак ? или *. Обратите внимание, что SOLR не поддерживает начальные подстановочные знаки, поэтому *frog не найдет bullfrog, но frog* должен найти frogskin.

см. примеры поиска Solr для дополнительную информацию о поиске с помощью SOLR и ColdFusion.

person Travis    schedule 14.03.2013