Solr / Solrnet - Использование подстановочных знаков для получения букв по поиску письма

StackOverflow https://stackoverflow.com/questions/4749136

Вопрос

Эй, ребята, я пытаюсь реализовать некоторые функции поиска в приложении.

SOLR 1.4.1 работает на подключении Tomcat7 JDBC с MS SQLServer с представлением IM INDEXING SOLR завершил индексацию, и индекс работает.

Чтобы найти и общаться с Solr, я создал небольшую тестовую службу WCF (будет реализован с нашей основной службой позже).

Цель состоит в том, чтобы реализовать текстовое поле в нашем основном приложении. В этом текстовом поле пользователи могут начать печатать что -то вроде кисти и постепенно фильтровать список объектов, поскольку все больше и больше символов вводятся.

Это работает просто отлично и Dandy с Solr до определенного момента. Я использую звездочку подстановочного знака в конце моего запроса, и поэтому я бросаю много запросов, таких как P* pa* Pain* Paint*

и т.д. на сервере и его возвращающихся результатах просто отлично (на самом деле довольно впечатляюще быстро). Единственная проблема заключается в том, что, как только пользователь вводит все слово, запрос - это кисточка*, после чего Solr возвращает 0 результатов.

Таким образом, кажется, что запрос+подстановочный знак может быть только запросом+что -то, а не запрос+ничего

Мне удалось получить эту работу под Lucene.net, но Solr не делает что -то так же, как кажется.

Любой совет, который вы можете дать мне по реализации такой функции?

Кода не так много для просмотра, так как я использую Solrnet: http://pastebin.com/txpe4yue

Я полагаю, что это как -то связано с анализатором и анализатором, но я еще не так, чтобы знать, где смотреть :)

Это было полезно?

Решение 2

Стоимость, кажется, что вызвало проблему. Я исправил его, используя клон text_ws вместо текста для типа. Мои изменения в scema.xml: http://pastebin.com/xajzdgy4

Stemming отключена, а индексация строчной строки включена. Пока все запросы находятся в более низком случае, они всегда должны давать результаты (если они вообще).

Похоже, что проблема заключается в том, что анализаторы не работают с подстановочными знаками, поэтому логика, которая сделает Джонни результатом Джона или Джонни, «сломана» при использовании подстановочных знаков.

Если вы сталкиваются с похожими проблемами и мое решение здесь не совсем работает, вы можете добавить DebugQuery = в свою строку запроса и немного больше о том, что происходит. Это помогло мне сузить проблему.

Другие советы

Я бы не стал внедрять предложения с запросами подстановочного знака префикса в Solr. Есть и другие механизмы, лучше подходящие для этого. Видеть:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top