Результаты поиска
Lucene оценка результатов
В Lucene, если у вас было несколько индексов, которые охватывали только один раздел каждый. Почему один и тот же поиск по разным индексам возвращает результаты с разными оценками? Результаты с разных серверов точно совпадают.
т. е. если бы я искал :
- Имя-Джон Смит
- DOB - 11/11/1934
Раздел 0 вернет оценку 0.345
Раздел 1 вернет оценку 0.337
Оба совпадают точно по имени и DOB.
Почему SQL полнотекстовая индексация не возвращает результаты для слов, содержащих #?
Например, мой запрос выглядит следующим образом, используя SQL Server 2005:
SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#')
У меня есть полнотекстовый индекс, определенный для использования столбца SearchField, который возвращает результаты при использовании:
SELECT * FROM Table WHERE SearchField LIKE '%c#%'
Я считаю, что # - это специальная буква, поэтому как я могу разрешить FREETEXT правильно работать для запроса выше?
Лучшая самобалансировка BST для быстрого ввода большого количества узлов
Я смог найти подробности о нескольких самобалансирующихся BST через несколько источников, но я не нашел хороших описаний, детализирующих, какой из них лучше всего использовать в разных ситуациях (или если это действительно не имеет значения).
Я хочу BST , который является оптимальным для хранения более десяти миллионов узлов. Порядок вставки узлов в основном случайный, и мне никогда не нужно будет удалять узлы, поэтому время вставки-это единственное, что нужно будет оптимизировать.
Я намерен использовать его для хранения ранее посещенных игровых состояний в игре-головоломке, чтобы я мог быстро проверить, была ли уже обнаружена предыдущая конфигурация.
Лучшая самобалансировка BST для быстрого ввода большого количества узлов
Я смог найти подробности о нескольких самобалансирующихся BST через несколько источников, но я не нашел хороших описаний, детализирующих, какой из них лучше всего использовать в разных ситуациях (или если это действительно не имеет значения).
Я хочу BST , который является оптимальным для хранения более десяти миллионов узлов. Порядок вставки узлов в основном случайный, и мне никогда не нужно будет удалять узлы, поэтому время вставки-это единственное, что нужно будет оптимизировать.
Я намерен использовать его для хранения ранее посещенных игровых состояний в игре-головоломке, чтобы я мог быстро проверить, была ли уже обнаружена предыдущая конфигурация.
MOSS SSP проблема-сбой входа в базу данных из удаленного SSP
У нас были некоторые проблемы с экземпляром SharePoint в тесте окружающая среда. К счастью, это не производство ;) проблемы начались когда закончился диск с базами данных сервера SQL и индексом поиска из космоса. После этого Служба поиска не будет работать и искать настройки в SSP были недоступны. Восстановление дискового пространства сделал не решить проблему. Поэтому вместо того, чтобы восстанавливать VM, мы решили попробуйте решить эту проблему.
Мы создали новый SSP и изменили ассоциацию всех сервисов на новый SSP. Старый SSP и его базы данных были затем удалены. Поиск результаты для файлов PDF больше не отображаются, но поиск работает в остальном все нормально. MySites также работает OK.
После реализации этого изменения возникают следующие проблемы:
1) в журнале событий приложений появилось сообщение об ошибке аудита, для 'DOMAIN\SPMOSSSvc', которое является учетной записью фермы MOSS.
Event Type: Failure Audit
Event Source: MSSQLSERVER
Event Category: (4)
Event ID: 18456
Date: 8/5/2008
Time: 3:55:19 PM
User: DOMAIN\SPMOSSSvc
Computer: dastest01
Description:
Login failed for user 'DOMAIN\SPMOSSSvc'. [CLIENT: <local machine>]
2) SQL Server profiler показывает запросы от SharePoint, которые ссылаются на старый (удалено) база данных SSP.
Так...
- Где бы эти ссылки на DOMAIN\SPMOSSSvc и старый SSP база данных существует?
- Есть ли способ 'completely' удалить SSP с сервера, и воссоздать? Опция удаления была недоступна (выделена серым цветом), Когда a один SSP находится на месте.
Разбор поисковых запросов в Java
Я пытался найти простой способ проанализировать поисковый запрос и преобразовать его в запрос SQL для моего DB.
Я нашел два решения:
- Lucene : мощная поисковая система на основе Java, содержит парсер запросов, но он не очень настраивается, и я мог бы найти способ легко взломать/адаптировать его для создания SQL запросов.
- ANTLR : ветеран текст лексер-парсер. Используется для создания чего угодно-от компиляторов до небоскребов. ANTLR очень легко настраивается, но каждый, кто коснется кода с этого момента, должен будет выучить новый язык...
Есть еще какие-нибудь идеи?
PowerShell FINDSTR эквивалентный?
Что такое эквивалент DOS FINDSTR для PowerShell ? Мне нужно найти кучу файлов журнала для "ERROR".
Ошибка WildcardQuery в Solr
Я использую solr для поиска документов, и при попытке поиска документов с помощью этого запроса " id:* ", я получаю это исключение синтаксического анализатора запроса, сообщающее, что он не может проанализировать запрос с помощью * или ? как первый персонаж.
HTTP Status 400 - org.apache.lucene.queryParser.ParseException: Cannot parse 'id:*': '*' or '?' not allowed as first character in WildcardQuery
type Status report
message org.apache.lucene.queryParser.ParseException: Cannot parse 'id:*': '*' or '?' not allowed as first character in WildcardQuery
description The request sent by the client was syntactically incorrect (org.apache.lucene.queryParser.ParseException: Cannot parse 'id:*': '*' or '?' not allowed as first character in WildcardQuery).
Есть ли какой-нибудь патч, чтобы заставить это работать с just * ? Или это очень дорого сделать такой запрос?
Как сделать поиск без учета регистра с помощью модификатора шаблона, используя меньше?
Похоже, что единственный способ сделать это-передать параметр-i, когда вы изначально работаете меньше. Кто-нибудь знает о каком-то секретном взломе, чтобы сделать что-то вроде этой работы
/something to search for/i
SQL Сервер Полнотекстового Поиска
В настоящее время я работаю над приложением, в котором у нас есть база данных SQL-Server, и мне нужно получить полнотекстовый поиск, который позволяет нам искать имена людей.
В настоящее время пользователь может ввести в поле имя, которое ищет 3 разных varchar седла. Имя, Фамилия, Отчество
Так сказать, у меня есть 3 строки со следующей информацией.
1-Филлип-Джей-Фрай
2-Эми-NULL-Вонг
3-Лео-NULL-Вонг
Если пользователь вводит имя, например 'Fry', он возвращает строку 1. Однако, если они входят в Филлип Фрай, или фр, или Фил, они ничего не получают.. и я не понимаю, почему он это делает. Если они ищут Вонга, они получают строки 2 и 3, если они ищут Эми Вонг, они снова ничего не получают.
В настоящее время запрос использует CONTAINSTABLE, но я переключил его с FREETEXTTABLE, CONTAINS и FREETEXT без каких-либо заметных различий в результатах. Методы таблицы являются предпочтительными, поскольку они возвращают те же результаты, но с ранжированием.
Вот этот запрос.
....
@Name nvarchar(100),
....
--""s added to prevent crash if searching on more then one word.
DECLARE @SearchString varchar(100)
SET @SearchString = '"'+@Name+'"'
SELECT Per.Lastname, Per.Firstname, Per.MiddleName
FROM Person as Per
INNER JOIN CONTAINSTABLE(Person, (LastName, Firstname, MiddleName), @SearchString)
AS KEYTBL
ON Per.Person_ID = KEYTBL.[KEY]
WHERE KEY_TBL.RANK > 2
ORDER BY KEYTBL.RANK DESC;
....
любая идея...? Почему этот полнотекстовый поиск не работает ?
Использование Lucene для поиска email адресов
Я хочу использовать Lucene (в частности, Lucene.NET) для поиска email адресных доменов.
E.g. Я хочу найти "@gmail.com", чтобы найти все письма, отправленные на адрес gmail.
Выполнение запроса Lucene для "*@gmail.com " приводит к ошибке, звездочки не могут быть в начале запросов. Выполнение запроса для "@gmail.com " не возвращает никаких совпадений, потому что "foo@gmail.com" рассматривается как целое слово, и вы не можете искать только части слова.
Как я могу это сделать?
Стратегии поиска платформы
Я ищу информацию по обработке поиска в разных ORMs.
В настоящее время я перестраиваю какое-то старое приложение в PHP, и одно из требований: сделайте все или почти все доступным для поиска, поэтому пользователь просто набирает "punkrock live", и приложение находит видеоклипы, музыкальные треки, обзоры, предстоящие события или даже комментарии пользователей, помеченные таким образом.
В среде, где все доступно для поиска ORM необходимо поддерживать эту функцию двумя способами:
- предоставление некоторой индексации API на "O" стороне ORM
- предоставление средств для массового извлечения базы данных на стороне "R"
Идеальное решение будет возвращать готовые объекты на основе искомой строки. Знаете ли вы какие-либо хорошие решения end-to-end, которые выполняют эту работу, не обязательно в PHP? Если вы имели дело с подобной проблемой, было бы неплохо послушать, что ваш опыт. Нечто большее, чем использование Lucene или семантической паутины является способ oneliner'ы, Тхо ;-)*
Как я могу искать контент в пределах audio files/streams?
Я всегда задавался вопросом, сколько существует различных методов поиска, для поиска текста, для поиска изображений и даже для видео.
Однако я никогда не сталкивался с решением, которое искало бы содержимое в аудиофайлах.
Например: предположим, что у меня есть около 200 подкастов, загруженных в мой PC в виде файлов mp3, wav и ogg. Все они имеют общее название, скажем, podcast1.mp3, podcast2.mp3 и т. д. Таким образом, невозможно узнать, что такое содержание, не услышав их на самом деле. Скажем так, мне интересно узнать, о чем говорят подкасты 'game programming'. Я хочу, чтобы результаты были показаны как:
- Podcast1.mp3 - 3 результат(ы) по временному индексу(ы) - 0:16:21, 0:43:45, 1:12:31
- Podcast21.ogg-1 результат(ы) по временному индексу(ам) - 0:12:01
Так что мои вопросы:
- Как можно было бы подойти к этой проблеме?
- Существуют ли подходящие алгоритмы, разработанные для выполнения чего-то подобного?
Одна идея, возникшая у меня в голове, заключалась в том, что можно было бы использовать программное обеспечение " speech-to-text " для получения транскриптов вместе с индексами времени для каждого из аудиофайлов, а затем проанализировать транскрипт, чтобы получить результат.
Я рассматривал это как один из моих хобби-проектов. Спасибо!
Можно ли выполнить AND поиск ключевых слов с помощью FREETEXT() на SQL Server 2005?
Существует запрос , чтобы сделать SO поиска по умолчанию для функциональности стиля AND по сравнению с текущим OR, когда используются несколько терминов.
Официальный ответ был таким:
не так просто, как кажется; мы используем функцию SQL Server 2005 FREETEXT() , и я не могу найти способ указать AND против OR - не так ли?
Итак, есть ли способ?
Есть ряд ресурсов , которые я могу найти, но я не эксперт.
Глюк калькулятора Google, может ли float vs double быть возможной причиной?
Я сделал это просто для удовольствия (так что, не совсем вопрос, я вижу, что downmodding уже происходит), но вместо новообретенной неспособности Google правильно делать математику (проверьте это! согласно google 500,000,000,000,002-500,000,000,000,001 = 0), я решил, что попробую следующее в C, чтобы запустить небольшую теорию.
int main()
{
char* a = "399999999999999";
char* b = "399999999999998";
float da = atof(a);
float db = atof(b);
printf("%s - %s = %f\n", a, b, da-db);
a = "500000000000002";
b = "500000000000001";
da = atof(a);
db = atof(b);
printf("%s - %s = %f\n", a, b, da-db);
}
При запуске этой программы вы получаете следующее
399999999999999 - 399999999999998 = 0.000000
500000000000002 - 500000000000001 = 0.000000
Казалось бы, Google использует простую 32-битную плавающую точность (ошибка здесь), Если вы переключите float на double в приведенном выше коде, вы исправите проблему! Может быть, это оно и есть?
/mp